14.19.1 Описания функций агрегирования
В этом разделе описываются функции агрегирования, которые работают с наборами значений. Часто они используются с клаузой GROUP
BY для группировки значений в подмножества.
Таблица 14.29 Функции агрегирования
| Имя | Описание |
|---|---|
AVG() | Возвращает среднее значение аргумента |
BIT_AND() | Возвращает побитовое И |
BIT_OR() | Возвращает побитовое ИЛИ |
BIT_XOR() | Возвращает побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ |
COUNT() | Возвращает количество строк, возвращаемых запросом |
COUNT(DISTINCT) | Возвращает количество различных значений |
GROUP_CONCAT() | Возвращает конкатенированную строку |
JSON_ARRAYAGG() | Возвращает результат в виде одного JSON-массива |
JSON_OBJECTAGG() | Возвращает результат в виде одного JSON-объекта |
MAX() | Возвращает максимальное значение |
MIN() | Возвращает минимальное значение |
STD() | Возвращает стандартное отклонение генеральной совокупности |
STDDEV() | Возвращает стандартное отклонение генеральной совокупности |
STDDEV_POP() | Возвращает стандартное отклонение генеральной совокупности |
STDDEV_SAMP() | Возвращает выборочное стандартное отклонение |
SUM() | Возвращает сумму |
VAR_POP() | Возвращает дисперсию генеральной совокупности |
VAR_SAMP() | Возвращает выборочную дисперсию |
VARIANCE() | Возвращает дисперсию генеральной совокупности |
Если не указано иное, функции агрегирования игнорируют значения NULL.
Если вы используете функцию агрегирования в операторе без клаузы GROUP BY, это эквивалентно группировке по всем строкам. Дополнительную информацию см. в разделе Раздел 14.19.3, «Обработка GROUP BY в MySQL».
Большинство функций агрегирования могут быть использованы как оконные функции. Те, которые могут быть использованы таким образом, обозначаются в их описании синтаксиса как [, представляющие необязательную клаузу over_clause]OVER. over_clause описана в Разделе 14.20.2, «Концепции и синтаксис оконных функций», который также содержит другую информацию об использовании оконных функций.
Для числовых аргументов функции дисперсии и стандартного отклонения возвращают значение DOUBLE. Функции SUM() и AVG() возвращают значение DECIMAL для аргументов точного значения (целые числа или DECIMAL), и значение DOUBLE для аргументов приближенного значения (FLOAT или DOUBLE).
Функции агрегирования SUM() и AVG() не работают с временными значениями. (Они преобразуют значения в числа, теряя все после первой нечисловой символа.) Чтобы решить эту проблему, преобразуйте в числовые единицы, выполните операцию агрегирования и преобразуйте обратно во временное значение. Примеры:
SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(time_col))) FROM tbl_name;
SELECT FROM_DAYS(SUM(TO_DAYS(date_col))) FROM tbl_name;
Такие функции, как SUM() или AVG(), которые ожидают числовой аргумент, преобразуют аргумент в число, если необходимо. Для значений SET или ENUM операция преобразования использует лежащее в основе числовое значение.
Функции агрегирования BIT_AND(), BIT_OR() и BIT_XOR() выполняют побитовые операции.
Функции и операторы MySQL для битовых операций допускают аргументы типа двоичных строк (BINARY, VARBINARY и типы BLOB), возвращая значения такого же типа, что позволяет им принимать аргументы и создавать возвращаемые значения, превышающие 64 бита. Для обсуждения оценки аргументов и типов результатов для побитовых операций см. вводное обсуждение в Разделе 14.12, «Функции и операторы для битовых операций».
-
AVG([DISTINCT]expr) [over_clause]Возвращает среднее значение
. ОпцияexprDISTINCTможет быть использована для возвращения среднего значения уникальных значенийexpr.Если нет совпадающих строк,
AVG()возвращаетNULL. Функция также возвращаетNULL, еслиexprявляетсяNULL.Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в Разделе 14.20.2, «Концепции и синтаксис функций окна»; она не может использоваться сDISTINCT.mysql>
SELECT student_name, AVG(test_score)FROM studentGROUP BY student_name; -
Возвращает побитовое
ANDвсех битов вexpr.Тип результата зависит от того, оцениваются ли значения аргументов функции как двоичные строки или числа:
Оценка двоичной строки происходит, когда значения аргументов имеют тип двоичной строки, и аргумент не является шестнадцатеричной литеральной, побитовой литеральной или
NULLлитеральной. В противном случае происходит числовая оценка, при необходимости со значением аргумента, преобразованным в беззнаковое 64-битное целое число.Оценка двоичной строки генерирует двоичную строку той же длины, что и значения аргументов. Если значения аргументов имеют разную длину, возникает ошибка. Если размер аргумента превышает 511 байт, возникает ошибка. Числовая оценка генерирует беззнаковое 64-битное целое число.
Если нет совпадающих строк,
BIT_AND()возвращает нейтральное значение (все биты установлены в 1), имеющее такую же длину, как и значения аргументов.Значения
NULLне влияют на результат, если все значения являютсяNULL. В этом случае результат — нейтральное значение той же длины, что и значения аргументов.Более подробную информацию о оценке аргументов и типах результатов см. во вводной части Раздела 14.12, «Функции и операторы для битовых операций».
Если
BIT_AND()вызывается из клиента mysql, результаты двоичных строк отображаются в шестнадцатеричной нотации, в зависимости от значения--binary-as-hex. Более подробную информацию об этой опции см. в Разделе 6.5.1, «mysql — Клиентская командная строка MySQL».Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в Разделе 14.20.2, «Концепции и синтаксис функций окна». -
Возвращает побитовое
ORвсех битов вexpr.Тип результата зависит от того, оцениваются ли значения аргументов функции как двоичные строки или числа:
Оценка двоичной строки происходит, когда значения аргументов имеют тип двоичной строки, и аргумент не является шестнадцатеричной литеральной, побитовой литеральной или
NULLлитеральной. В противном случае происходит числовая оценка, при необходимости со значением аргумента, преобразованным в беззнаковое 64-битное целое число.Оценка двоичной строки генерирует двоичную строку той же длины, что и значения аргументов. Если значения аргументов имеют разную длину, возникает ошибка. Если размер аргумента превышает 511 байт, возникает ошибка. Числовая оценка генерирует беззнаковое 64-битное целое число.
Если нет совпадающих строк,
BIT_OR()возвращает нейтральное значение (все биты установлены в 0), имеющее такую же длину, как и значения аргументов.Значения
NULLне влияют на результат, если все значения являютсяNULL. В этом случае результат — нейтральное значение той же длины, что и значения аргументов.Более подробную информацию о оценке аргументов и типах результатов см. во вводной части Раздела 14.12, «Функции и операторы для битовых операций».
Если
BIT_OR()вызывается из клиента mysql, результаты двоичных строк отображаются в шестнадцатеричной нотации, в зависимости от значения--binary-as-hex. Более подробную информацию об этой опции см. в Разделе 6.5.1, «mysql — Клиентская командная строка MySQL».Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в Разделе 14.20.2, «Концепции и синтаксис функций окна». -
Возвращает побитовое
XORвсех битов вexpr.Тип результата зависит от того, оцениваются ли значения аргументов функции как двоичные строки или числа:
Оценка двоичной строки происходит, когда значения аргументов имеют тип двоичной строки, и аргумент не является шестнадцатеричной литеральной, побитовой литеральной или
NULLлитеральной. В противном случае происходит числовая оценка, при необходимости со значением аргумента, преобразованным в беззнаковое 64-битное целое число.Оценка двоичной строки генерирует двоичную строку той же длины, что и значения аргументов. Если значения аргументов имеют разную длину, возникает ошибка. Если размер аргумента превышает 511 байт, возникает ошибка. Числовая оценка генерирует беззнаковое 64-битное целое число.
Если нет совпадающих строк,
BIT_XOR()возвращает нейтральное значение (все биты установлены в 0), имеющее такую же длину, как и значения аргументов.Значения
NULLне влияют на результат, если все значения являютсяNULL. В этом случае результат — нейтральное значение той же длины, что и значения аргументов.Более подробную информацию о оценке аргументов и типах результатов см. во вводной части Раздела 14.12, «Функции и операторы для битовых операций».
Если
BIT_XOR()вызывается из клиента mysql, результаты двоичных строк отображаются в шестнадцатеричной нотации, в зависимости от значения--binary-as-hex. Более подробную информацию об этой опции см. в Разделе 6.5.1, «mysql — Клиентская командная строка MySQL».Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в Разделе 14.20.2, «Концепции и синтаксис функций окна».
-
Возвращает количество ненулевых значений столбца
exprв строках, полученных с помощью оператора выбора. Результат — значение типа целого числа.Если сопоставляющих строк нет, подсчёт значений возвращает
0.COUNT(NULL)возвращает 0.Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в разделе 14.20.2, «Концепции и синтаксис функций окна».mysql>
SELECT student.student_name,COUNT(*)FROM student,courseWHERE student.student_id=course.student_idGROUP BY student_name;Функция подсчёта строк отличается тем, что она возвращает количество полученных строк, содержат ли они
NULLзначения или нет.Для транзакционных хранилищ, таких как
InnoDB, хранение точного количества строк проблематично. В одно время могут выполняться несколько транзакций, каждая из которых может повлиять на счёт.InnoDBне хранит внутренний счёт строк в таблице, поскольку параллельные транзакции могут «видеть» разное количество строк одновременно. Следовательно, операторыSELECT COUNT(*)подсчитывают только строки, видимые текущей транзакцией.Производительность запросов
SELECT COUNT(*) FROMдля таблицtbl_nameInnoDBоптимизирована для однопоточных задач, если нет дополнительных условий, таких какWHEREилиGROUP BY.InnoDBобрабатывает операторыSELECT COUNT(*), перебирая наименьший доступный вторичный индекс, если индекс или подсказка оптимизатора не направляют оптимизатор на использование другого индекса. Если вторичный индекс отсутствует,InnoDBобрабатывает операторыSELECT COUNT(*), сканируя кластеризованный индекс.Обработка операторов
SELECT COUNT(*)занимает некоторое время, если записи индекса не полностью находятся в кэше. Для более быстрого подсчёта создайте таблицу счётчика и позвольте вашему приложению обновлять её в соответствии с операциями вставки и удаления. Однако этот метод может быть неэффективным в ситуациях, когда тысячи одновременных транзакций инициируют обновления той же таблицы счётчика. Если достаточно приближённого значения, используйтеSHOW TABLE STATUS.InnoDBобрабатывает операцииSELECT COUNT(*)иSELECT COUNT(1)одинаково. Разницы в производительности нет.Для таблиц
MyISAMCOUNT(*)оптимизирована для очень быстрого возврата, если оператор выбора получает данные из одной таблицы, не выбираются другие столбцы и нет условияWHERE. Например:mysql>
SELECT COUNT(*) FROM student;Эта оптимизация применяется только к таблицам
MyISAM, так как для этого движка хранилища сохраняется точное количество строк и к нему можно получить очень быстрый доступ.COUNT(1)подвергается той же оптимизации только в том случае, если первый столбец определен какNOT NULL. -
Возвращает количество строк с различными ненулевыми значениями
expr.Если сопоставляющих строк нет,
COUNT(DISTINCT)возвращает0.mysql>
SELECT COUNT(DISTINCT results) FROM student;В MySQL можно получить количество различных комбинаций выражений, не содержащих
NULL, задавая список выражений. В стандартном SQL для этого потребовалось бы склеить все выражения внутриCOUNT(DISTINCT ...). -
Эта функция возвращает строку, содержащую конкатенированные ненулевые значения из группы. Возвращает
NULL, если ненулевых значений нет. Полный синтаксис следующий:GROUP_CONCAT([DISTINCT]
expr[,expr...] [ORDER BY {unsigned_integer|col_name|expr} [ASC | DESC] [,col_name...]] [SEPARATORstr_val])mysql>
SELECT student_name,GROUP_CONCAT(test_score)FROM studentGROUP BY student_name;Или:
mysql>
SELECT student_name,GROUP_CONCAT(DISTINCT test_scoreORDER BY test_score DESC SEPARATOR ' ')FROM studentGROUP BY student_name;В MySQL можно получить конкатенированные значения комбинаций выражений. Чтобы исключить дубликаты, используйте условие
DISTINCT. Для сортировки значений в результате используйте условиеORDER BY. Для сортировки в обратном порядке добавьте ключевое словоDESC(по убыванию) к имени сортируемого столбца в условииORDER BY. По умолчанию порядок сортировки — возрастающий; это можно указать явно, используя ключевое словоASC. По умолчанию разделитель между значениями в группе — запятая (,). Чтобы явно указать разделитель, используйтеSEPARATORи строковое значение, которое должно вставляться между значениями группы. Чтобы полностью исключить разделитель, укажитеSEPARATOR ''.Результат усекается до максимальной длины, заданной системной переменной
group_concat_max_len, значение которой по умолчанию равно 1024. Его можно установить выше, хотя эффективная максимальная длина возвращаемого значения ограничена значениемmax_allowed_packet. Синтаксис изменения значенияgroup_concat_max_lenво время выполнения следующий, гдеval— целое число без знака:SET [GLOBAL | SESSION] group_concat_max_len =
val;Возвращаемое значение — строка без бинарного или бинарная строка, в зависимости от того, являются ли аргументы строками без бинарных или бинарными строками. Тип результата —
TEXTилиBLOB, еслиgroup_concat_max_lenне превышает 512, в противном случае —VARCHARилиVARBINARY.Если функция
GROUP_CONCAT()вызывается из клиента mysql, бинарные строковые результаты отображаются в шестнадцатеричной нотации в зависимости от значения--binary-as-hex. Дополнительную информацию об этом параметре см. в разделе 6.5.1, «mysql — Клиент MySQL командной строки».См. также
CONCAT()иCONCAT_WS(): раздел 14.8, «Функции и операторы для строк». -
JSON_ARRAYAGG(col_or_expr) [over_clause]Объединяет результат набора строк в одном массиве JSON, элементы которого состоят из строк. Порядок элементов в массиве не определён. Функция применяется к столбцу или выражению, вычисляющему одно значение. Возвращает
NULL, если результат не содержит строк или при ошибке. Еслиcol_or_expr—NULL, функция возвращает массив элементов JSON[null].Эта функция выполняется как функция окна, если
over_clauseприсутствует.over_clauseописана в разделе 14.20.2, «Концепции и синтаксис функций окна».mysql>
SELECT o_id, attribute, value FROM t3;+------+-----------+-------+ | o_id | attribute | value | +------+-----------+-------+ | 2 | color | red | | 2 | fabric | silk | | 3 | color | green | | 3 | shape | square| +------+-----------+-------+ 4 rows in set (0.00 sec) mysql>SELECT o_id, JSON_ARRAYAGG(attribute) AS attributes->FROM t3 GROUP BY o_id;+------+---------------------+ | o_id | attributes | +------+---------------------+ | 2 | ["color", "fabric"] | | 3 | ["color", "shape"] | +------+---------------------+ 2 rows in set (0.00 sec)
-
JSON_OBJECTAGG(key,value) [over_clause]Принимает два имени столбца или выражения в качестве аргументов, первое из которых используется в качестве ключа, а второе — в качестве значения, и возвращает JSON-объект, содержащий пары ключ-значение. Возвращает
NULL, если результат не содержит строк или в случае ошибки. Ошибка возникает, если любое имя ключа являетсяNULLили количество аргументов не равно 2.Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в Разделе 14.20.2, «Понятие и синтаксис функций окна».mysql>
SELECT o_id, attribute, value FROM t3;+------+-----------+-------+ | o_id | attribute | value | +------+-----------+-------+ | 2 | color | red | | 2 | fabric | silk | | 3 | color | green | | 3 | shape | square| +------+-----------+-------+ 4 rows in set (0.00 sec) mysql>SELECT o_id, JSON_OBJECTAGG(attribute, value)->FROM t3 GROUP BY o_id;+------+---------------------------------------+ | o_id | JSON_OBJECTAGG(attribute, value) | +------+---------------------------------------+ | 2 | {"color": "red", "fabric": "silk"} | | 3 | {"color": "green", "shape": "square"} | +------+---------------------------------------+ 2 rows in set (0.00 sec)Обработка дублирующих ключей. При нормализации результата этой функции значения с дублирующими ключами отбрасываются. В соответствии со спецификацией типа данных MySQL
JSON, которая не допускает дублирующих ключей, в возвращаемом объекте используется только последнее встреченное значение с данным ключом (“последний дублирующий ключ берется”). Это означает, что результат применения этой функции к столбцам изSELECTможет зависеть от порядка возвращения строк, который не гарантируется.При использовании в качестве функции окна, если в рамках есть дублирующиеся ключи, в результате присутствует только последнее значение для ключа. Значение ключа из последней строки в рамках является детерминированным, если спецификация
ORDER BYгарантирует, что значения имеют определенный порядок. Если нет, то результирующее значение ключа является недетерминированным.Рассмотрим следующее:
mysql>
CREATE TABLE t(c VARCHAR(10), i INT);Query OK, 0 rows affected (0.33 sec) mysql>INSERT INTO t VALUES ('key', 3), ('key', 4), ('key', 5);Query OK, 3 rows affected (0.10 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql>SELECT c, i FROM t;+------+------+ | c | i | +------+------+ | key | 3 | | key | 4 | | key | 5 | +------+------+ 3 rows in set (0.00 sec) mysql>SELECT JSON_OBJECTAGG(c, i) FROM t;+----------------------+ | JSON_OBJECTAGG(c, i) | +----------------------+ | {"key": 5} | +----------------------+ 1 row in set (0.00 sec) mysql>DELETE FROM t;Query OK, 3 rows affected (0.08 sec) mysql>INSERT INTO t VALUES ('key', 3), ('key', 5), ('key', 4);Query OK, 3 rows affected (0.06 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql>SELECT c, i FROM t;+------+------+ | c | i | +------+------+ | key | 3 | | key | 5 | | key | 4 | +------+------+ 3 rows in set (0.00 sec) mysql>SELECT JSON_OBJECTAGG(c, i) FROM t;+----------------------+ | JSON_OBJECTAGG(c, i) | +----------------------+ | {"key": 4} | +----------------------+ 1 row in set (0.00 sec)Выбранный ключ из последнего запроса является недетерминированным. Если запрос не использует
GROUP BY(что обычно налагает свой собственный порядок независимо) и вы предпочитаете определённый порядок ключей, вы можете вызватьJSON_OBJECTAGG()как функцию окна, включив в запросOVER-оператор со спецификациейORDER BY, чтобы наложить определённый порядок на строки фрейма. Следующие примеры показывают, что происходит сORDER BYи без него для нескольких разных спецификаций фреймов.Без
ORDER BYфрейм охватывает всю партицию:mysql>
SELECT JSON_OBJECTAGG(c, i)OVER () AS json_object FROM t;+-------------+ | json_object | +-------------+ | {"key": 4} | | {"key": 4} | | {"key": 4} | +-------------+С
ORDER BY, где фрейм по умолчанию —RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW(в порядке возрастания и убывания):mysql>
SELECT JSON_OBJECTAGG(c, i)OVER (ORDER BY i) AS json_object FROM t;+-------------+ | json_object | +-------------+ | {"key": 3} | | {"key": 4} | | {"key": 5} | +-------------+ mysql>SELECT JSON_OBJECTAGG(c, i)OVER (ORDER BY i DESC) AS json_object FROM t;+-------------+ | json_object | +-------------+ | {"key": 5} | | {"key": 4} | | {"key": 3} | +-------------+С
ORDER BYи явным фреймом всей партиции:mysql>
SELECT JSON_OBJECTAGG(c, i)OVER (ORDER BY iROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)AS json_objectFROM t;+-------------+ | json_object | +-------------+ | {"key": 5} | | {"key": 5} | | {"key": 5} | +-------------+Чтобы вернуть конкретное значение ключа (например, наименьшее или наибольшее), включите
LIMIT-оператор в соответствующий запрос. Например:mysql>
SELECT JSON_OBJECTAGG(c, i)OVER (ORDER BY i) AS json_object FROM t LIMIT 1;+-------------+ | json_object | +-------------+ | {"key": 3} | +-------------+ mysql>SELECT JSON_OBJECTAGG(c, i)OVER (ORDER BY i DESC) AS json_object FROM t LIMIT 1;+-------------+ | json_object | +-------------+ | {"key": 5} | +-------------+Дополнительную информацию и примеры см. в разделе Нормализация, слияние и автоматическое обертывание JSON-значений.
-
MAX([DISTINCT]expr) [over_clause]Возвращает максимальное значение
expr.MAX()может принимать строковый аргумент; в таких случаях она возвращает максимальное строковое значение. См. Раздел 10.3.1, «Как MySQL использует индексы». Ключевое словоDISTINCTможно использовать для поиска максимального значения из уникальных значенийexpr, однако это даёт тот же результат, что и опусканиеDISTINCT.Если нет совпадающих строк или если
exprравноNULL,MAX()возвращаетNULL.Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в Разделе 14.20.2, «Понятие и синтаксис функций окна»; она не может быть использована сDISTINCT.mysql>
SELECT student_name, MIN(test_score), MAX(test_score)FROM studentGROUP BY student_name;Для
MAX(), MySQL в настоящее время сравнивает столбцыENUMиSETпо их строковому значению, а не по относительному положению строки в наборе. Это отличается от того, какORDER BYсравнивает их. -
MIN([DISTINCT]expr) [over_clause]Возвращает минимальное значение
expr.MIN()может принимать строковый аргумент; в таких случаях она возвращает минимальное строковое значение. См. Раздел 10.3.1, «Как MySQL использует индексы». Ключевое словоDISTINCTможно использовать для поиска минимального значения из уникальных значенийexpr, однако это даёт тот же результат, что и опусканиеDISTINCT.Если нет совпадающих строк или если
exprравноNULL,MIN()возвращаетNULL.Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в Разделе 14.20.2, «Понятие и синтаксис функций окна»; она не может быть использована сDISTINCT.mysql>
SELECT student_name, MIN(test_score), MAX(test_score)FROM studentGROUP BY student_name;Для
MIN(), MySQL в настоящее время сравнивает столбцыENUMиSETпо их строковому значению, а не по относительному положению строки в наборе. Это отличается от того, какORDER BYсравнивает их. -
Возвращает стандартное отклонение генеральной совокупности для
expr.STD()— это синоним стандартной SQL-функцииSTDDEV_POP(), предоставленной как расширение MySQL.Если нет совпадающих строк или если
exprравноNULL,STD()возвращаетNULL.Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в Разделе 14.20.2, «Понятие и синтаксис функций окна». - ... (and so on, repeating the translation process for all remaining list items)
-
SUM([DISTINCT]expr) [over_clause]Возвращает сумму
expr. Если возвращаемый набор не содержит строк,SUM()возвращаетNULL. Ключевое словоDISTINCTможет быть использовано для суммирования только уникальных значенийexpr.Если нет совпадающих строк или если
exprравноNULL,SUM()возвращаетNULL.Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в Разделе 14.20.2, «Концепции и синтаксис функций окон»; она не может использоваться сDISTINCT. -
Возвращает дисперсию генеральной совокупности для
expr. Она учитывает строки как всю генеральную совокупность, а не как выборку, поэтому в знаменателе используется число строк. Вы также можете использоватьVARIANCE(), которая эквивалентна, но не является стандартным SQL.Если нет совпадающих строк или если
exprравноNULL,VAR_POP()возвращаетNULL.Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в Разделе 14.20.2, «Концепции и синтаксис функций окон». -
Возвращает дисперсию выборки для
expr. То есть в знаменателе используется число строк минус один.Если нет совпадающих строк или если
exprравноNULL,VAR_SAMP()возвращаетNULL.Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в Разделе 14.20.2, «Концепции и синтаксис функций окон». -
Возвращает дисперсию генеральной совокупности для
expr.VARIANCE()является синонимом стандартной SQL функцииVAR_POP(), предоставленной как расширение MySQL.Если нет совпадающих строк или если
exprравноNULL,VARIANCE()возвращаетNULL.Эта функция выполняется как функция окна, если присутствует
over_clause.over_clauseописана в Разделе 14.20.2, «Концепции и синтаксис функций окон».
© 2025 Oracle
Licensed under the GPLv2 License.