Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 9075-93 Информационная технология (ИТ). Язык баз данных SQL с расширением целостности

     5.8 <спецификация функции набора>


Функция

Задает значение, которое является результатом функции от аргумента.

Формат

<спецификация функции набора> : : =

COUNT ( * ) | <функция набора различимых объектов> | <функция мультинабора>

<функция набора различимых объектов> : : =

{AVG | MAX | MIN | SUM | COUNT} (DISTINCT <спецификация столбца>)

<функция мультинабора> : : =

{AVG | MAX | MIN | SUM} ([ALL]<выражение значения> )


Правила синтаксиса

1) Аргументом функции COUNT (*) и источником аргументов для <функции набора различимых объектов> и <функции мультинабора> является таблица или группа в сгруппированной таблице (см. 5.19 <табличное значение>, 5.24 <подзапрос>, 5.25 <спецификация запроса>).

2) Аргумент или источник аргументов для <спецификации функции набора> обозначим буквой .

3) <спецификация столбца> в <функции набора различимых объектов> и каждая <спецификация столбца> в <выражении над значениями> в <функции мультинабора> должна однозначным образом указывать столбец в и не должна быть ссылкой на столбец, полученный в результате выполнения функции, заданной <спецификацией функции набора>.

4) <выражение значения> в <функции мультинабора> должно включать в себя <спецификацию столбца>, указывающую столбец в , и не должно включать <спецификацию функции набора>. Если <спецификация столбца> является внешней ссылкой, то <выражение значения> не должно включать в себя каких-либо операций.

Примечание - Понятие "внешняя ссылка" определено в 5.7 <спецификация столбца>.

5) Если <спецификация функции набора> содержит <спецификацию столбца>, которая является внешней ссылкой, то такая <спецификация функции набора> должна входить в <подзапрос> в составе <спецификатора выборки групп>.

Примечание - Понятие "внешняя ссылка" определено в 5.7 <спецификация столбца>.

6) Тип данных, к которому относятся значения, полученные в результате вычисления <спецификации столбца> или <выражения значения>, обозначим буквой .

7) Если задана функция COUNT, то результатом <спецификации функции набора> будет значение, относящееся к точному числовому типу данных с точностью, определяемой разработчиком реализации, и нулевой дробной частью.

8) Если задана функция МАХ или MIN, то результат будет относиться к типу данных .

9) Если задана функция SUM или AVG, то:

a) не должен быть строкой символов;

b) если задана функция SUM, а - точный числовой тип, то результат будет относиться к точному числовому типу данных, точность и дробная часть которого определяются разработчиком реализации;

c) если задана функция AVG, а - точный числовой тип, то результат будет относиться к точному числовому типу данных, точность и дробная часть которого определяются разработчиком реализации;

d) если - приближенный числовой тип, то результат будет относиться к приближенному числовому типу с точностью, определяемой разработчиком реализации.

Общие правила

1) Аргументом <функции набора различимых объектов> является набор значений. Этот набор получается в результате исключения всех неопределенных значений и всех избыточных дубликатных значений из столбца в , заданного <спецификацией столбца>.

2) Аргументом <функции мультинабора> является мультинабор. Этот набор получается в результате исключения всех неопределенных значений из набора, полученного посредством применения <выражения значения> для каждой строки в . Смысл <функции мультинабора> не зависит от того, задано ключевое слово ALL или нет.

3) Аргумент <функции набора различимых объектов> или <функции мультинабора> обозначим буквой .

4) Возможны следующие варианты:

a) если задана <функция набора различимых объектов> COUNT, то результатом будет мощность ;