← Аналитика / analytics / analytics-engine / sql-reference
Агрегатные функции
count
Использование:
count()
count(DISTINCT column_name)count является агрегатной функцией, которая возвращает количество строк в каждой группе или наборе результатов.
count также можно использовать для подсчёта числа различных (уникальных) значений в каждом столбце:
Пример:
-- return the total number of rows
count()
-- return the number of different values in the column
count(DISTINCT column_name)sum
Использование:
sum([DISTINCT] column_name)sum является агрегатной функцией, которая возвращает сумму значений столбца по всем строкам в каждой группе или наборе результатов. Функция Sum также поддерживает DISTINCT, но в этом случае она просуммирует только уникальные значения в столбце.
Пример:
-- return the total cost of all items
sum(item_cost)
-- return the total of all unique item costs
sum(DISTINCT item_cost)avg
Использование:
avg([DISTINCT] column_name)avg является агрегатной функцией, которая возвращает среднее значение столбца по всем строкам в каждой группе или наборе результатов. Функция Avg также поддерживает DISTINCT, но в этом случае она усреднит только уникальные значения в столбце.
Пример:
-- return the mean item cost
avg(item_cost)
-- return the mean of unique item costs
avg(DISTINCT item_cost)min
Использование:
min(column_name)min является агрегатной функцией, которая возвращает минимальное значение столбца по всем строкам.
Пример:
-- return the minimum item cost
min(item_cost)max
Использование:
max(column_name)max является агрегатной функцией, которая возвращает максимальное значение столбца по всем строкам.
Пример:
-- return the maximum item cost
max(item_cost)quantileExactWeighted
Использование:
quantileExactWeighted(q)(column_name, weight_column_name)quantileExactWeighted является агрегатной функцией, которая возвращает значение в q. квантиль в указанном столбце по всем строкам в каждой группе или наборе результатов. Каждая строка взвешивается по значению в weight_column_name. Обычно это _sample_interval (см. Сэмплирование с дополнительной информацией).
Пример:
-- estimate the median value of <double1>
quantileExactWeighted(0.5)(double1, _sample_interval)
-- in a table of query times, estimate the 95th centile query time
quantileExactWeighted(0.95)(query_time, _sample_interval)Для обратной совместимости также доступно как quantileWeighted(q, column_name, weight_column_name).
argMax Новое
Использование:
argMax(arg, val)argMax является агрегатной функцией, которая возвращает arg значение, соответствующее максимальному значению val.
Если несколько arg имеют максимальное значение val, будет возвращено любое из них.
Пример:
-- find the <blob1> value for the row with the highest <double1>
argMax(blob1, double1)
-- find the <blob1> value from the most heavily sampled row
argMax(blob1, _sample_interval)argMin Новое
Использование:
argMin(arg, val)argMin является агрегатной функцией, которая возвращает arg значение, соответствующее минимальному значению val.
Если несколько arg имеют минимальное значение val, будет возвращено любое из них.
Пример:
-- find the <blob1> value for the row with the lowest <double1>
argMin(blob1, double1)
-- find the <blob1> value from the least heavily sampled row
argMin(blob1, _sample_interval)first_value Новое
Использование:
first_value(column_name)first_value является агрегатной функцией, которая возвращает первое значение заданного столбца.
Пример:
-- find the oldest value of <blob1>
SELECT first_value(blob1) FROM my_dataset ORDER BY timestamp ASClast_value Новое
Использование:
last_value(column_name)last_value является агрегатной функцией, которая возвращает последнее значение заданного столбца.
Пример:
-- find the oldest value of <blob1>
SELECT last_value(blob1) FROM my_dataset ORDER BY timestamp DESCtopK Новое
Использование:
topK(N)(column)topK является агрегатной функцией, которая возвращает наиболее часто встречающееся N значения столбца.
N является необязательным и по умолчанию принимает значение 10.
Пример:
-- find the 10 most common values of <double1>
SELECT topK(double1) FROM my_dataset
-- find the 15 most common values of <blob1>
SELECT topK(15)(blob1) FROM my_datasettopKWeighted Новое
Использование:
topKWeighted(N)(column, weight_column)topKWeighted является агрегатной функцией, которая возвращает наиболее часто встречающееся N значения столбца, взвешенные по второму столбцу.
N является необязательным и по умолчанию принимает значение 10.
Пример:
-- find the 10 most common values of <double1>, weighted by `_sample_interval`
SELECT topKWeighted(double1, _sample_interval) FROM my_dataset
-- find the 15 most common values of <blob1>, weighted by `_sample_interval`
SELECT topKWeighted(15)(blob1, _sample_interval) FROM my_datasetcountIf Новое
Использование:
countIf(<expr>)countIf является агрегатной функцией, которая возвращает количество строк в наборе результатов,
но учитывает только строки, для которых заданное выражение принимает значение true.
Пример:
-- return the number of rows where `double1` is greater than 5
countIf(double1 > 5)sumIf Новое
Использование:
sumIf(<expr>, <expr>)sumIf является агрегатной функцией, которая возвращает сумму первого выражения по всем строкам в наборе результатов,
но учитывает только строки, для которых второе выражение принимает значение true.
Пример:
-- return the sum of column `item_cost` of all items where another column `in_stock` is not zero
sumIf(item_cost, in_stock > 0)avgIf Новое
Использование:
avgIf(<expr>, <expr>)avgIf является агрегатной функцией, которая возвращает среднее значение выражения по всем строкам в наборе результатов,
но учитывает только строки, для которых второе выражение принимает значение true.
Пример:
-- return the mean of column `item_cost` where another column `in_stock` is not zero
avgIf(item_cost, in_stock > 0)