← Analytics / analytics / analytics-engine / sql-reference
Agregační funkce
count
Použití:
count()
count(DISTINCT column_name)count je agregační funkce, která vrací počet řádků v každé skupině nebo sadě výsledků.
count lze také použít ke spočítání počtu odlišných (unikátních) hodnot v každém sloupci:
Příklad:
-- return the total number of rows
count()
-- return the number of different values in the column
count(DISTINCT column_name)sum
Použití:
sum([DISTINCT] column_name)sum je agregační funkce, která vrací součet hodnot sloupce napříč všemi řádky v každé skupině nebo sadě výsledků. Sum také podporuje DISTINCT, v tomto případě ale sečte pouze jedinečné hodnoty ve sloupci.
Příklad:
-- return the total cost of all items
sum(item_cost)
-- return the total of all unique item costs
sum(DISTINCT item_cost)avg
Použití:
avg([DISTINCT] column_name)avg je agregační funkce, která vrací průměr hodnot sloupce napříč všemi řádky v každé skupině nebo sadě výsledků. Avg také podporuje DISTINCT, v tomto případě ale zprůměruje pouze jedinečné hodnoty ve sloupci.
Příklad:
-- return the mean item cost
avg(item_cost)
-- return the mean of unique item costs
avg(DISTINCT item_cost)min
Použití:
min(column_name)min je agregační funkce, která vrací minimální hodnotu sloupce napříč všemi řádky.
Příklad:
-- return the minimum item cost
min(item_cost)max
Použití:
max(column_name)max je agregační funkce, která vrací maximální hodnotu sloupce napříč všemi řádky.
Příklad:
-- return the maximum item cost
max(item_cost)quantileExactWeighted
Použití:
quantileExactWeighted(q)(column_name, weight_column_name)quantileExactWeighted je agregační funkce, která vrací hodnotu v q. kvantil v pojmenovaném sloupci napříč všemi řádky v každé skupině nebo sadě výsledků. Každý řádek se váží podle hodnoty v weight_column_name. Obvykle by to bylo _sample_interval (viz Vzorkování pro další informace).
Příklad:
-- 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)Kvůli zpětné kompatibilitě je k dispozici také jako quantileWeighted(q, column_name, weight_column_name).
argMax New
Použití:
argMax(arg, val)argMax je agregační funkce, která vrací arg hodnotu odpovídající maximální hodnotě val.
Pokud je více arg mají maximální hodnotu val, vrátí se kterákoli z nich.
Příklad:
-- 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 New
Použití:
argMin(arg, val)argMin je agregační funkce, která vrací arg hodnotu odpovídající minimální hodnotě val.
Pokud je více arg mají minimální hodnotu val, vrátí se kterákoli z nich.
Příklad:
-- 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 New
Použití:
first_value(column_name)first_value je agregační funkce, která vrací první hodnotu zadaného sloupce.
Příklad:
-- find the oldest value of <blob1>
SELECT first_value(blob1) FROM my_dataset ORDER BY timestamp ASClast_value New
Použití:
last_value(column_name)last_value je agregační funkce, která vrací poslední hodnotu zadaného sloupce.
Příklad:
-- find the oldest value of <blob1>
SELECT last_value(blob1) FROM my_dataset ORDER BY timestamp DESCtopK New
Použití:
topK(N)(column)topK je agregační funkce, která vrací nejčastější N hodnoty sloupce.
N je volitelné a jeho výchozí hodnota je 10.
Příklad:
-- 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 New
Použití:
topKWeighted(N)(column, weight_column)topKWeighted je agregační funkce, která vrací nejčastější N hodnoty sloupce vážené podle druhého sloupce.
N je volitelné a jeho výchozí hodnota je 10.
Příklad:
-- 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 New
Použití:
countIf(<expr>)countIf je agregační funkce, která vrací počet řádků v sadě výsledků,
ale počítá pouze řádky, u kterých se zadaný výraz vyhodnotí jako true.
Příklad:
-- return the number of rows where `double1` is greater than 5
countIf(double1 > 5)sumIf New
Použití:
sumIf(<expr>, <expr>)sumIf je agregační funkce, která vrací součet prvního výrazu napříč všemi řádky v sadě výsledků,
ale zahrnuje pouze řádky, u kterých se druhý výraz vyhodnotí jako true.
Příklad:
-- 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 New
Použití:
avgIf(<expr>, <expr>)avgIf je agregační funkce, která vrací průměr výrazu napříč všemi řádky v sadě výsledků,
ale zahrnuje pouze řádky, u kterých se druhý výraz vyhodnotí jako true.
Příklad:
-- return the mean of column `item_cost` where another column `in_stock` is not zero
avgIf(item_cost, in_stock > 0)