Функция
Задает значение, которое является результатом функции от аргумента.
Формат
<спецификация функции набора> : : = | |||||||
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, то результатом будет мощность ;