# 聚合函数
# min
计算一组值中的最小值的聚合函数。
示例
SELECT min(salary) FROM employees;
SELECT department, min(salary) FROM employees GROUP BY department;
# max
计算一组值中的最大值的聚合函数。
示例
SELECT max(salary) FROM employees;
SELECT department, max(salary) FROM employees GROUP BY department;
# sum
计算总和。仅适用于数字。
示例:
SELECT sum(salary) FROM employees;
# avg
计算算术平均值。
avg(x)
参数
x
— 输入值,必须为整数、浮点数或十进制数。
返回值
- 算术平均值,始终为Float64类型。
- 如果输入参数
x
为空,则返回NaN
。
示例
SELECT avg(x) FROM values('x Int8', 0, 1, 2, 3, 4, 5);
┌─avg(x)─┐
│ 2.5 │
└────────┘
CREATE table test (t UInt8) ENGINE = Memory;
SELECT avg(t) FROM test;
┌─avg(x)─┐
│ nan │
└────────┘
# quantile
计算数值数据序列的近似分位数。该函数使用最多8192个水塘抽样和随机数生成器进行抽样。结果是非确定性的。要获得精确的分位数,请使用quantileExact函数。
在查询中使用多个具有不同水平的quantile*
函数时,内部状态不会合并(即,查询的效率低于可能的效率)。在这种情况下,请使用quantiles函数。
请注意,对于空的数值序列,quantile
将返回NaN,但其quantile*
变体将返回NaN或序列类型的默认值,具体取决于变体。
quantile(level)(expr)
别名:
median
。
参数
level
— 分位数的水平。可选参数。常量浮点数,范围从0到1。我们建议使用level
值在[0.01, 0.99]
范围内。默认值:0.5。在level=0.5
时,函数计算中位数。expr
— 对列值进行表达式,结果为数值数据类型、日期或日期时间。
返回值
- 指定水平的近似分位数。
- 类型:
- 数值数据类型输入的Float64。
- 如果输入值具有
Date
类型,则为Date
。 - 如果输入值具有
DateTime
类型,则为DateTime
。
示例
CREATE table test (t UInt8) ENGINE = Memory;
INSERT INTO test values(1)(1)(2)(3)
SELECT quantile(t) FROM test
┌─quantile(t)───┐
│ 1.5 │
└───────────────┘
# entropy
- 计算一列值的香农熵。
- 语法
entropy(val)
- 参数
val
— 任意类型的值的列。
- 返回值
- 香农熵。
- 类型:Float64。
- 示例
- 查询:
CREATE TABLE entropy (`vals` UInt32,`strings` String) ENGINE = Memory; INSERT INTO entropy VALUES (1, 'A'), (1, 'A'), (1,'A'), (1,'A'), (2,'B'), (2,'B'), (2,'C'), (2,'D'); SELECT entropy(vals), entropy(strings) FROM entropy;
- 结果:
┌─entropy(vals)─┬─entropy(strings)─┐│ 1 │ 1.75 │└───────────────┴──────────────────┘