# 集約関数

# 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)─┐│ 11.75 │└───────────────┴──────────────────┘
    
Last Updated: Thu Apr 11 2024 02:40:52 GMT+0000