# 集約関数
# 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
— 入力値。Integer、Float、またはDecimalである必要があります。
返される値
- 算術平均。常に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
— 数値データ型、Date、またはDateTimeの入力値を結果とする列の式。
返される値
- 指定されたレベルの近似分位数。
- タイプ:
- 数値データ型の入力の場合は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 │└───────────────┴──────────────────┘