Spec-Zone.ru › DuckDB

Функции агрегирования

Примеры

Создайте одну строку, содержащую сумму столбца amount.

SELECT sum(amount)
FROM sales;

Создайте по одной строке на каждый уникальный регион, содержащую сумму amount для каждой группы.

SELECT region, sum(amount)
FROM sales
GROUP BY region;

Возвратите только регионы, у которых сумма amount выше 100.

SELECT region
FROM sales
GROUP BY region
HAVING sum(amount) > 100;

Возвратите количество уникальных значений в столбце region.

SELECT count(DISTINCT region)
FROM sales;

Возвратите два значения: общую сумму amount и сумму amount за вычетом столбцов, где регион north, используя FILTER условие.

SELECT sum(amount), sum(amount) FILTER (region != 'north')
FROM sales;

Возвращает список всех регионов в порядке столбца amount.

SELECT list(region ORDER BY amount DESC)
FROM sales;

Возвращает сумму первой продажи, используя функцию агрегирования first().

SELECT first(amount ORDER BY date ASC)
FROM sales;

Синтаксис

Функции агрегирования — это функции, которые объединяют несколько строк в одно значение. Функции агрегирования отличаются от скалярных функций и функций окон, потому что они изменяют кардинальность результата. Таким образом, функции агрегирования могут использоваться только в SELECT и HAVING предложениях SQL-запроса.

DISTINCT предложение в функциях агрегирования

Когда используется предложение DISTINCT, при вычислении агрегата учитываются только уникальные значения. Это обычно используется в сочетании с функцией агрегирования count, чтобы получить количество уникальных элементов; но его можно использовать вместе с любой функцией агрегирования в системе.

ORDER BY предложение в функциях агрегирования

Предложение ORDER BY может быть указано после последнего аргумента вызова функции. Обратите внимание на отсутствие разделителя запятой перед предложением.

SELECT ⟨aggregate_function⟩(⟨arg⟩, ⟨sep⟩ ORDER BY ⟨ordering_criteria⟩);

Это предложение гарантирует, что значения, подлежащие агрегированию, сортируются перед применением функции. Большинство функций агрегирования не зависят от порядка, и для них это предложение анализируется и отбрасывается. Однако существуют некоторые зависящие от порядка функции агрегирования, которые могут давать не детерминированные результаты без упорядочивания, например, first, last, list и string_agg / group_concat / listagg. Эти функции могут быть детерминированными при упорядочивании аргументов.

Например:

CREATE TABLE tbl AS
    SELECT s FROM range(1, 4) r(s);

SELECT string_agg(s, ', ' ORDER BY s DESC) AS countdown
FROM tbl;
countdown
3, 2, 1

Общие функции агрегирования

В таблице ниже показаны доступные общие функции агрегирования.

Функция Описание
any_value(arg) Возвращает первое не-NULL значение из arg. Данная функция зависит от порядка сортировки.
arbitrary(arg) Возвращает первое значение (NULL или не-NULL) из arg. Данная функция зависит от порядка сортировки.
arg_max(arg, val) Находит строку с максимальным значением val и вычисляет выражение arg в этой строке. Строки, где значение выражения arg или val равно NULL, игнорируются. Данная функция зависит от порядка сортировки.
arg_max(arg, val, n) Обобщённый случай функции arg_max для n значений: возвращает набор LIST, содержащий выражения arg для верхних n строк, отсортированных по val в порядке убывания. Данная функция зависит от порядка сортировки.
arg_max_null(arg, val) Находит строку с максимальным значением val и вычисляет выражение arg в этой строке. Строки, где выражение val принимает значение NULL, игнорируются. Данная функция зависит от порядка сортировки.
arg_min(arg, val) Находит строку с минимальным значением val и вычисляет выражение arg в этой строке. Строки, где значение выражения arg или val равно NULL, игнорируются. Данная функция зависит от порядка сортировки.
arg_min(arg, val, n) Возвращает набор LIST, содержащий выражения arg для нижних n строк, отсортированных по val в порядке возрастания. Данная функция зависит от порядка сортировки.
arg_min_null(arg, val) Находит строку с минимальным значением val и вычисляет выражение arg в этой строке. Строки, где выражение val принимает значение NULL, игнорируются. Данная функция зависит от порядка сортировки.
array_agg(arg) Возвращает массив LIST, содержащий все значения столбца. Данная функция зависит от порядка сортировки.
avg(arg) Вычисляет среднее значение всех не-NULL значений в arg.
bit_and(arg) Возвращает побитовую конъюнкцию всех битов в заданном выражении.
bit_or(arg) Возвращает побитовое ИЛИ всех битов в заданном выражении.
bit_xor(arg) Возвращает побитовое исключающее ИЛИ всех битов в заданном выражении.
bitstring_agg(arg) Возвращает битовую строку, длина которой соответствует диапазону не-NULL (целых) значений, с установленными битами в позиции каждого (уникального) значения.
bool_and(arg) Возвращает true, если каждое входное значение равно true, иначе false.
bool_or(arg) Возвращает true, если любое входное значение равно true, иначе false.
count() Возвращает количество строк в группе.
count(arg) Возвращает количество не-NULL значений в arg.
favg(arg) Вычисляет среднее значение с помощью более точного суммирования с плавающей точкой (сумма Кахана).
first(arg) Возвращает первое значение (NULL или не-NULL) из arg. Данная функция зависит от порядка сортировки.
fsum(arg) Вычисляет сумму с помощью более точного суммирования с плавающей точкой (сумма Кахана).
geomean(arg) Вычисляет геометрическое среднее всех не-NULL значений в arg.
histogram(arg) Возвращает набор MAP пар ключ-значение, представляющих интервалы и их количество.
last(arg) Возвращает последнее значение столбца. Данная функция зависит от порядка сортировки.
list(arg) Возвращает список LIST, содержащий все значения столбца. Данная функция зависит от порядка сортировки.
max(arg) Возвращает максимальное значение, присутствующее в arg.
max(arg, n) Возвращает набор LIST, содержащий значения arg для верхних n строк, отсортированных по arg в порядке убывания.
max_by(arg, val) Находит строку с максимальным значением val. Вычисляет выражение arg в этой строке. Данная функция зависит от порядка сортировки.
max_by(arg, val, n) Возвращает набор LIST, содержащий выражения arg для верхних n строк, отсортированных по val в порядке убывания.
min(arg) Возвращает минимальное значение, присутствующее в arg.
min(arg, n) Возвращает набор LIST, содержащий значения arg для нижних n строк, отсортированных по arg в порядке возрастания.
min_by(arg, val) Находит строку с минимальным значением val. Вычисляет выражение arg в этой строке. Данная функция зависит от порядка сортировки.
min_by(arg, val, n) Возвращает набор LIST, содержащий выражения arg для нижних n строк, отсортированных по val в порядке возрастания.
product(arg) Вычисляет произведение всех не-NULL значений в arg.
string_agg(arg, sep) Конкатенирует строковые значения столбца с разделителем. Данная функция зависит от порядка сортировки.
sum(arg) Вычисляет сумму всех не-NULL значений в arg.

any_value(arg)

Описание Возвращает первое не-NULL значение из arg. Данная функция зависит от порядка сортировки.
Пример any_value(A)
Псевдоним(ы) -

arbitrary(arg)

Описание Возвращает первое значение (NULL или не-NULL) из arg. Данная функция зависит от порядка сортировки.
Пример arbitrary(A)
Псевдоним(ы) first(A)

arg_max(arg, val)

Описание Находит строку с максимальным значением val и вычисляет выражение arg в этой строке. Строки, где значение выражения arg или val равно NULL, игнорируются. Эта функция подвержена влиянию сортировки порядок.
Пример arg_max(A, B)
Псевдоним(ы) argMax(arg, val), max_by(arg, val)

arg_max(arg, val, n)

Описание Обобщённый случай arg_max для множества значений: возвращает LIST, содержащий выражения arg для верхних n строк, отсортированных по val в порядке убывания. Эта функция подвержена влиянию сортировки порядок.
Пример arg_max(A, B, 2)
Псевдоним(ы) argMax(arg, val, n), max_by(arg, val, n)

arg_max_null(arg, val)

Описание Находит строку с максимальным значением val и вычисляет выражение arg в этой строке. Строки, где выражение val имеет значение NULL, игнорируются. Эта функция подвержена влиянию сортировки порядок.
Пример arg_max_null(A, B)
Псевдоним(ы) -

arg_min(arg, val)

Описание Находит строку с минимальным значением val и вычисляет выражение arg в этой строке. Строки, где значение выражения arg или val равно NULL, игнорируются. Эта функция подвержена влиянию сортировки порядок.
Пример arg_min(A, B)
Псевдоним(ы) argmin(arg, val), min_by(arg, val)

arg_min(arg, val, n)

Описание Обобщённый случай arg_min для множества значений: возвращает LIST, содержащий выражения arg для верхних n строк, отсортированных по val в порядке убывания. Эта функция подвержена влиянию сортировки порядок.
Пример arg_min(A, B, 2)
Псевдоним(ы) argmin(arg, val, n), min_by(arg, val, n)

arg_min_null(arg, val)

Описание Находит строку с минимальным значением val и вычисляет выражение arg в этой строке. Строки, где выражение val имеет значение NULL, игнорируются. Эта функция подвержена влиянию сортировки порядок.
Пример arg_min_null(A, B)
Псевдоним(ы) -

array_agg(arg)

Описание Возвращает LIST, содержащий все значения столбца. Эта функция подвержена влиянию сортировки порядок.
Пример array_agg(A)
Псевдоним(ы) list

avg(arg)

Описание Вычисляет среднее арифметическое всех значений, отличных от NULL, в arg.
Пример avg(A)
Псевдоним(ы) mean

bit_and(arg)

Описание Возвращает побитовое AND всех битов в заданном выражении.
Пример bit_and(A)
Псевдоним(ы) -

bit_or(arg)

Описание Возвращает побитовое OR всех битов в заданном выражении.
Пример bit_or(A)
Псевдоним(ы) -

bit_xor(arg)

Описание Возвращает побитовое XOR всех битов в заданном выражении.
Пример bit_xor(A)
Псевдоним(ы) -

bitstring_agg(arg)

Описание Возвращает строку битов, длина которой соответствует диапазону ненулевых целочисленных значений, при этом биты устанавливаются в позиции каждого (различного) значения.
Пример bitstring_agg(A)
Псевдоним(ы) -

bool_and(arg)

Описание Возвращает true, если каждое входное значение равно true, в противном случае false.
Пример bool_and(A)
Псевдоним(ы) -

bool_or(arg)

Описание Возвращает true, если какое-либо входное значение равно true, в противном случае false.
Пример bool_or(A)
Псевдоним(ы) -

count()

Описание Возвращает количество строк в группе.
Пример count()
Псевдоним(ы) count(*)

count(arg)

Описание Возвращает количество ненулевых значений в arg.
Пример count(A)
Псевдоним(ы) -

favg(arg)

Описание Вычисляет среднее с использованием более точного плавающего представления суммы (сумма Кахана).
Пример favg(A)
Псевдоним(ы) -

first(arg)

Описание Возвращает первое значение (NULL или не NULL) из arg. Эта функция подвержена влиянию сортировки порядок.
Пример first(A)
Псевдоним(ы) arbitrary(A)

fsum(arg)

Описание Вычисляет сумму с использованием более точного плавающего представления суммы (сумма Кахана).
Пример fsum(A)
Псевдоним(ы) sumKahan, kahan_sum

geomean(arg)

Описание Вычисляет геометрическое среднее всех значений, отличных от NULL, в arg.
Пример geomean(A)
Псевдоним(ы) geometric_mean(A)

histogram(arg)

Описание Возвращает MAP пар ключ-значение, представляющих корзины и счётчики.
Пример histogram(A)
Псевдоним(ы) -

last(arg)

Описание Возвращает последнее значение столбца. Эта функция подвержена влиянию сортировки порядок.
Пример last(A)
Псевдоним(ы) -

list(arg)

Описание Возвращает LIST, содержащий все значения столбца. Эта функция зависит от сортировки.
Пример list(A)
Псевдоним(ы) array_agg

max(arg)

Описание Возвращает максимальное значение, присутствующее в arg.
Пример max(A)
Псевдоним(ы) -

max(arg, n)

Описание Возвращает LIST, содержащий значения для "верхних" n строк, отсортированных по arg в порядке убывания.
Пример max(A, 2)
Псевдоним(ы) -

max_by(arg, val)

Описание Находит строку с максимальным val. Вычисляет выражение arg в этой строке. Эта функция зависит от сортировки.
Пример max_by(A, B)
Псевдоним(ы) argMax(arg, val), arg_max(arg, val)

max_by(arg, val, n)

Описание Возвращает LIST, содержащий выражения arg для "верхних" n строк, отсортированных по val в порядке убывания.
Пример max_by_n(A, B, 2)
Псевдоним(ы) argMax(arg, val, n), arg_max(arg, val, n)

min(arg)

Описание Возвращает минимальное значение, присутствующее в arg.
Пример min(A)
Псевдоним(ы) -

min(arg, n)

Описание Возвращает LIST, содержащий значения arg для "нижних" n строк, отсортированных по arg в порядке возрастания.
Пример min(A, 2)
Псевдоним(ы) -

min_by(arg, val)

Описание Находит строку с минимальным val. Вычисляет выражение arg в этой строке. Эта функция зависит от сортировки.
Пример min_by(A, B)
Псевдоним(ы) argMin(arg, val), arg_min(arg, val)

min_by(arg, val, n)

Описание Возвращает LIST, содержащий выражения arg для "нижних" n строк, отсортированных по val в порядке возрастания.
Пример min_by(A, B, 2)
Псевдоним(ы) argMin(arg, val, n), arg_min(arg, val, n)

product(arg)

Описание Вычисляет произведение всех значений, отличных от NULL, в arg.
Пример product(A)
Псевдоним(ы) -

string_agg(arg, sep)

Описание Соединяет строковые значения столбца с разделителем. Эта функция зависит от сортировки.
Пример string_agg(S, ',')
Псевдоним(ы) group_concat(arg, sep), listagg(arg, sep)

sum(arg)

Описание Вычисляет сумму всех значений, отличных от NULL, в arg.
Пример sum(A)
Псевдоним(ы) -

Обработка NULL значений

Все общие агрегатные функции, за исключением list и first (и их псевдонимов array_agg и arbitrary соответственно), игнорируют значения NULL. Чтобы исключить значения NULL из list, вы можете использовать FILTER условие. Чтобы пропустить значения NULL из first, вы можете использовать any_value агрегацию.

Все общие агрегатные функции, за исключением count, возвращают NULL для пустых групп и групп без значений, отличных от NULL. В частности, list не возвращает пустой список, sum не возвращает ноль, а string_agg не возвращает пустую строку в этом случае.

Приближенные агрегатные функции

В таблице ниже приведены доступные приближенные агрегатные функции.

Функция Описание Пример
approx_count_distinct(x) Даёт приблизительное количество уникальных элементов, используя HyperLogLog. approx_count_distinct(A)
approx_quantile(x, pos) Даёт приблизительное квантильное значение, используя T-Digest. approx_quantile(A, 0.5)
reservoir_quantile(x, quantile, sample_size = 8192) Даёт приблизительное квантильное значение, используя выборку по резервуару, размер выборки необязателен и по умолчанию использует размер 8192. reservoir_quantile(A, 0.5, 1024)

Статистические агрегатные функции

В таблице ниже приведены доступные статистические агрегатные функции. Все они игнорируют значения NULL (в случае одного входного столбца x) или пары, где хотя бы одно из входных значений равно NULL (в случае двух входных столбцов y и x).

END_OF_DOCUMENT_MARKER
Функция Описание
corr(y, x) Коэффициент корреляции.
covar_pop(y, x) Ковариация генеральной совокупности, не включающая поправку на смещение.
covar_samp(y, x) Выборочная ковариация, включающая поправку на смещение по Бесселю.
entropy(x) Энтропия в логарифмической системе с основанием 2.
kurtosis_pop(x) Избыток эксцесса (определение Фишера) без поправки на смещение.
kurtosis(x) Избыток эксцесса (определение Фишера) с поправкой на смещение в соответствии с объемом выборки.
mad(x) Медианское абсолютное отклонение. Для временных типов возвращает положительное значение INTERVAL.
median(x) Среднее значение набора. Для чётного количества значений количественные значения усредняются, а порядковые значения возвращают меньшее значение.
mode(x) Наиболее часто встречающееся значение.
quantile_cont(x, pos) Интерполированное pos-квантиль x для 0 <= pos <= 1, т.е. упорядочивает значения x и возвращает pos * (n_nonnull_values - 1)-й (нумерация с нуля) элемент (или интерполяцию между соседними элементами, если индекс не является целым числом). Если pos является LIST из FLOATs, то результат является LIST соответствующих интерполированных квантилей.
quantile_disc(x, pos) Дискретный pos-квантиль x для 0 <= pos <= 1, т.е. упорядочивает значения x и возвращает greatest(ceil(pos * n_nonnull_values) - 1, 0)-й (нумерация с нуля) элемент. Если pos является LIST из FLOATs, то результат является LIST соответствующих дискретных квантилей.
regr_avgx(y, x) Среднее значение независимой переменной для пар, не являющихся NULL, где x — независимая переменная, а y — зависимая переменная.
regr_avgy(y, x) Среднее значение зависимой переменной для пар, не являющихся NULL, где x — независимая переменная, а y — зависимая переменная.
regr_count(y, x) Количество пар, не являющихся NULL.
regr_intercept(y, x) Перехват прямой линейной регрессии для одной переменной, где x — независимая переменная, а y — зависимая переменная.
regr_r2(y, x) Квадрат коэффициента корреляции Пирсона между y и x. Также: коэффициент детерминации в линейной регрессии, где x — независимая переменная, а y — зависимая переменная.
regr_slope(y, x) Наклон прямой линейной регрессии, где x — независимая переменная, а y — зависимая переменная.
regr_sxx(y, x) Дисперсия генеральной совокупности, включающая поправку на смещение по Бесселю, независимой переменной для пар, не являющихся NULL, где x — независимая переменная, а y — зависимая переменная.
regr_sxy(y, x) Ковариация генеральной совокупности, включающая поправку на смещение по Бесселю.
regr_syy(y, x) Дисперсия генеральной совокупности, включающая поправку на смещение по Бесселю, зависимой переменной для пар, не являющихся NULL, где x — независимая переменная, а y — зависимая переменная.
skewness(x) Коэффициент асимметрии.
stddev_pop(x) Стандартное отклонение генеральной совокупности.
stddev_samp(x) Выборочное стандартное отклонение.
var_pop(x) Дисперсия генеральной совокупности, не включающая поправку на смещение.
var_samp(x) Выборочная дисперсия, включающая поправку на смещение по Бесселю.

corr(y, x)

Описание Коэффициент корреляции.
Формула covar_pop(y, x) / (stddev_pop(x) * stddev_pop(y))
Псевдонимы -

covar_pop(y, x)

Описание Ковариация генеральной совокупности, не включающая поправку на смещение.
Формула (sum(x*y) - sum(x) * sum(y) / regr_count(y, x)) / regr_count(y, x), covar_samp(y, x) * (1 - 1 / regr_count(y, x))
Псевдонимы -

covar_samp(y, x)

Описание Выборочная ковариация, включающая поправку на смещение по Бесселю.
Формула (sum(x*y) - sum(x) * sum(y) / regr_count(y, x)) / (regr_count(y, x) - 1), covar_pop(y, x) / (1 - 1 / regr_count(y, x))
Псевдонимы regr_sxy(y, x)

entropy(x)

Описание Энтропия в логарифмической системе с основанием 2.
Формула -
Псевдонимы -

kurtosis_pop(x)

Описание Избыток эксцесса (определение Фишера) без поправки на смещение.
Формула -
Псевдонимы -

kurtosis(x)

Описание Избыточная куртóзис (определение Фишера) с поправкой на смещение в зависимости от размера выборки.
Формула -
Псевдоним(ы) -

mad(x)

Описание Медианское абсолютное отклонение. Для временных типов возвращает положительное INTERVAL.
Формула median(abs(x - median(x)))
Псевдоним(ы) -

median(x)

Описание Среднее значение набора. Для чётного количества значений количественные значения усредняются, а порядковые значения возвращают меньшее значение.
Формула quantile_cont(x, 0.5)
Псевдоним(ы) -

mode(x)

Описание Наиболее часто встречающееся значение.
Формула -
Псевдоним(ы) -

quantile_cont(x, pos)

Описание Интерполированное pos-квантиль от x для 0 <= pos <= 1, т.е. упорядочивает значения x и возвращает pos * (n_nonnull_values - 1)-й (индексированный с нуля) элемент (или интерполяцию между соседними элементами, если индекс не является целым числом). Если pos является LIST из FLOAT-ов, то результат — LIST соответствующих интерполированных квантилей.
Формула -
Псевдоним(ы) -

quantile_disc(x, pos)

Описание Дискретная pos-квантиль от x для 0 <= pos <= 1, т.е. упорядочивает значения x и возвращает greatest(ceil(pos * n_nonnull_values) - 1, 0)-й (индексированный с нуля) элемент. Если pos является LIST из FLOAT-ов, то результат — LIST соответствующих дискретных квантилей.
Формула -
Псевдоним(ы) quantile

regr_avgx(y, x)

Описание Среднее значение независимой переменной для пар, не являющихся NULL, где x — независимая переменная, а y — зависимая переменная.
Формула -
Псевдоним(ы) -

regr_avgy(y, x)

Описание Среднее значение зависимой переменной для пар, не являющихся NULL, где x — независимая переменная, а y — зависимая переменная.
Формула -
Псевдоним(ы) -

regr_count(y, x)

Описание Количество пар, не являющихся NULL .
Формула -
Псевдоним(ы) -

regr_intercept(y, x)

Описание Пересечение линии однофакторной линейной регрессии, где x — независимая переменная, а y — зависимая переменная.
Формула regr_avgy(y, x) - regr_slope(y, x) * regr_avgx(y, x)
Псевдоним(ы) -

regr_r2(y, x)

Описание Квадрат коэффициента корреляции Пирсона между y и x. Также: коэффициент детерминации в линейной регрессии, где x — независимая переменная, а y — зависимая переменная.
Формула -
Псевдоним(ы) -

regr_slope(y, x)

Описание Возвращает наклон прямой линейной регрессии, где x — независимая переменная, а y — зависимая переменная.
Формула regr_sxy(y, x) / regr_sxx(y, x)
Псевдоним(ы) -

regr_sxx(y, x)

Описание Дисперсия генеральной совокупности, которая включает поправку на смещение Бесселя, независимой переменной для пар, не являющихся NULL, где x — независимая переменная, а y — зависимая переменная.
Формула -
Псевдоним(ы) -

regr_sxy(y, x)

Описание Ковариация генеральной совокупности, которая включает поправку на смещение Бесселя.
Формула -
Псевдоним(ы) -

regr_syy(y, x)

Описание Дисперсия генеральной совокупности, которая включает поправку на смещение Бесселя, зависимой переменной для пар, не являющихся NULL, где x — независимая переменная, а y — зависимая переменная.
Формула -
Псевдоним(ы) -

skewness(x)

Описание Асимметрия.
Формула -
Псевдоним(ы) -

stddev_pop(x)

Описание Стандартное отклонение генеральной совокупности.
Формула sqrt(var_pop(x))
Псевдоним(ы) -

stddev_samp(x)

Описание Стандартное отклонение выборки.
Формула sqrt(var_samp(x))
Псевдоним(ы) stddev(x)

var_pop(x)

Описание Дисперсия генеральной совокупности, не включающая поправку на смещение.
Формула (sum(x^2) - sum(x)^2 / count(x)) / count(x), var_samp(y, x) * (1 - 1 / count(x))
Псевдоним(ы) -

var_samp(x)

Описание Дисперсия выборки, которая включает поправку на смещение Бесселя.
Формула (sum(x^2) - sum(x)^2 / count(x)) / (count(x) - 1), var_pop(y, x) / (1 - 1 / count(x))
Псевдоним(ы) variance(arg, val)

Функции агрегирования упорядоченных наборов

В таблице ниже показаны доступные функции агрегирования «упорядоченных наборов». Эти функции задаются с помощью синтаксиса WITHIN GROUP (ORDER BY sort_expression), и они преобразуются в эквивалентную функцию агрегирования, которая принимает выражение упорядочивания в качестве первого аргумента.

Функция Эквивалент
mode() WITHIN GROUP (ORDER BY column [(ASC|DESC)]) mode(column ORDER BY column [(ASC|DESC)])
percentile_cont(fraction) WITHIN GROUP (ORDER BY column [(ASC|DESC)]) quantile_cont(column, fraction ORDER BY column [(ASC|DESC)])
percentile_cont(fractions) WITHIN GROUP (ORDER BY column [(ASC|DESC)]) quantile_cont(column, fractions ORDER BY column [(ASC|DESC)])
percentile_disc(fraction) WITHIN GROUP (ORDER BY column [(ASC|DESC)]) quantile_disc(column, fraction ORDER BY column [(ASC|DESC)])
percentile_disc(fractions) WITHIN GROUP (ORDER BY column [(ASC|DESC)]) quantile_disc(column, fractions ORDER BY column [(ASC|DESC)])

Разные функции агрегирования

Функция Описание Псевдоним
grouping() Для запросов с GROUP BY и ROLLUP или GROUPING SETS: Возвращает целое число, идентифицирующее, какое из выражений аргументов было использовано для группировки для создания текущей строки супер-агрегата. grouping_id()

© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/sql/functions/aggregates.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API