INTEGRITY Документация

Агрегатные функции

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 ASC

last_value Новое

Использование:

last_value(column_name)

last_value является агрегатной функцией, которая возвращает последнее значение заданного столбца.

Пример:

-- find the oldest value of <blob1>
SELECT last_value(blob1) FROM my_dataset ORDER BY timestamp DESC

topK Новое

Использование:

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_dataset

topKWeighted Новое

Использование:

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_dataset

countIf Новое

Использование:

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)