用法:
count()
count(DISTINCT column_name)count 是返回每个分组或结果集中行数的聚合函数。
count 也可用于计数每列中不同(唯一)值的数量:
示例:
-- 返回总行数
count()
-- 返回列中不同值的数量
count(DISTINCT column_name)用法:
sum([DISTINCT] column_name)sum 是一个聚合函数,返回每个分组或结果集中所有行对应的列值之和。sum 也支持 DISTINCT,但在这种情况下,它仅对该列中唯一的值求和。
示例:
-- 返回所有项目的总成本
sum(item_cost)
-- 返回所有唯一项目成本的总和
sum(DISTINCT item_cost)用法:
avg([DISTINCT] column_name)avg 是一个聚合函数,返回每个分组或结果集中所有行对应的列值的平均值。avg 也支持 DISTINCT,但在这种情况下,它仅对该列中唯一的值进行平均计算。
示例:
-- 返回项目成本的平均值
avg(item_cost)
-- 返回唯一项目成本的平均值
avg(DISTINCT item_cost)用法:
min(column_name)min 是一个聚合函数,返回所有行中某一列的最小值。
示例:
-- 返回项目成本的最小值
min(item_cost)用法:
max(column_name)max 是一个聚合函数,返回所有行中某一列的最大值。
示例:
-- 返回项目成本的最大值
max(item_cost)用法:
quantileExactWeighted(q)(column_name, weight_column_name)quantileExactWeighted 是一个聚合函数,返回每个分组或结果集中指定列的所有行在第 q 个分位数的值。每行将由 weight_column_name 中的值进行加权。通常这会是 _sample_interval(有关更多信息,请参阅采样 (Sampling))。
示例:
-- 估算 <double1> 的中位数
quantileExactWeighted(0.5)(double1, _sample_interval)
-- 在查询时间表中,估算第 95 百分位数的查询时间
quantileExactWeighted(0.95)(query_time, _sample_interval)为了向后兼容,该函数也可以用作 quantileWeighted(q, column_name, weight_column_name)。
用法:
argMax(arg, val)argMax 是一个聚合函数,返回与 val 的最大值相对应的 arg 值。
如果多个 arg 值均具有 val 的最大值,则将返回其中的任意一个。
示例:
-- 查找 <double1> 值最高的行对应的 <blob1> 值
argMax(blob1, double1)
-- 从采样最重的行中查找 <blob1> 值
argMax(blob1, _sample_interval)用法:
argMin(arg, val)argMin 是一个聚合函数,返回与 val 的最小值相对应的 arg 值。
如果多个 arg 值均具有 val 的最小值,则将返回其中的任意一个。
示例:
-- 查找 <double1> 值最低的行对应的 <blob1> 值
argMin(blob1, double1)
-- 从采样最轻的行中查找 <blob1> 值
argMin(blob1, _sample_interval)用法:
first_value(column_name)first_value 是一个聚合函数,返回所提供列的第一个值。
示例:
-- 查找 <blob1> 的最早值
SELECT first_value(blob1) FROM my_dataset ORDER BY timestamp ASC用法:
last_value(column_name)last_value 是一个聚合函数,返回所提供列的最后一个值。
示例:
-- 查找 <blob1> 的最早值
SELECT last_value(blob1) FROM my_dataset ORDER BY timestamp DESC用法:
topK(N)(column)topK 是一个聚合函数,返回一列中最常见的 N 个值。
N 是可选的,默认值为 10。
示例:
-- 查找 <double1> 的 10 个最常见的值
SELECT topK(double1) FROM my_dataset
-- 查找 <blob1> 的 15 个最常见的值
SELECT topK(15)(blob1) FROM my_dataset用法:
topKWeighted(N)(column, weight_column)topKWeighted 是一个聚合函数,返回一列中最常见的 N 个值,并由第二列进行加权。
N 是可选的,默认值为 10。
示例:
-- 查找 <double1> 的 10 个最常见的值,由 `_sample_interval` 加权
SELECT topKWeighted(double1, _sample_interval) FROM my_dataset
-- 查找 <blob1> 的 15 个最常见的值,由 `_sample_interval` 加权
SELECT topKWeighted(15)(blob1, _sample_interval) FROM my_dataset用法:
countIf(<expr>)countIf 是一个聚合函数,返回结果集中的行数,但仅对提供的表达式评估为 true 的行进行计数。
示例:
-- 返回 double1 大于 5 的行数
countIf(double1 > 5)用法:
sumIf(<expr>, <expr>)sumIf 是一个聚合函数,返回结果集中所有行对应的第一个表达式之和,但仅包括第二个表达式评估为 true 的行。
示例:
-- 返回另一列 in_stock 不为零的所有项目的 item_cost 列之和
sumIf(item_cost, in_stock > 0)用法:
avgIf(<expr>, <expr>)avgIf 是一个聚合函数,返回结果集中所有行对应的表达式的平均值,但仅包括第二个表达式评估为 true 的行。
示例:
-- 返回另一列 in_stock 不为零的 item_cost 列的平均值
avgIf(item_cost, in_stock > 0)