集計関数¶
集計関数は、行全体の値を操作して、合計、平均、カウント、最小/最大値、標準偏差、推定などの数学的計算、および非数学的な演算を実行します。
集計関数は、入力として複数の行(実際には、0、1、またはそれ以上の行)を取り、単一の出力を生成します。対照的に、スカラー関数は入力として1つの行を取り、出力として1つの行(1つの値)を生成します。
集約関数は、 入力にゼロ行が含まれている場合でも、常に正確に1行を返します通常、入力にゼロ行が含まれている場合、出力は NULL です。ただし、ゼロ行を渡すと、集計関数は、 0 、空の文字列、またはその他の値を返す可能性があります。
関数のリスト(サブカテゴリ別)¶
関数名 |
注意 |
|---|---|
一般的な集計 |
|
他の集計関数とは異なる構文を使用します。 |
|
他の集計関数とは異なる構文を使用します。 |
|
STDDEV と STDDEV_SAMP はエイリアスです。 |
|
VAR_POP のエイリアス。 |
|
VAR_SAMP のエイリアス。 |
|
ビット単位の集計 |
|
ブール集計 |
|
ハッシュ |
|
半構造化データの集計 |
|
線形回帰 |
|
統計と確率 |
|
異なる値のカウント |
|
カーディナリティの推定 . ( HyperLogLog を 使用) |
|
HLL のエイリアス。 |
|
集約関数ではなく、 DATASKETCHES_HLL_ACCUMULATE または DATASKETCHES_HLL_COMBINE からのスカラー入力を使用します。 |
|
集約関数ではなく、 HLL_ACCUMULATE または HLL_COMBINE からのスカラー入力を使用します。 |
|
類似度の推定 . ( MinHash を 使用) |
|
APPROXIMATE_SIMILARITY のエイリアス。 |
|
頻度推定 . ( 省スペース を 使用) |
|
集約関数ではなく、 APPROX_TOP_K_ACCUMULATE または APPROX_TOP_K_COMBINE からのスカラー入力を使用します。 |
|
パーセンタイル推定 . ( t-Digest を 使用) |
|
集約関数ではなく、 APPROX_PERCENTILE_ACCUMULATE または APPROX_PERCENTILE_COMBINE からのスカラー入力を使用します。 |
|
集計ユーティリティ |
|
集計関数ではなく、集計関数と組み合わせて使用して 、 GROUP BY クエリによって生成された行の集計レベルを決定できます。 |
|
GROUPING のエイリアス。 |
|
AI 関数 |
|
ベクトル集計 |
|
セマンティックビュー |
|
使用例¶
次の例は、集計関数(AVG)とスカラー関数(COS)の違いを示しています。スカラー関数は入力行ごとに1つの出力行を返しますが、集計関数は複数の入力行に対して1つの出力行を返します。
テーブルを作成し、値を入力します。
テーブルをクエリします。
スカラー関数は、入力行ごとに1つの出力行を返します。
集計関数は、複数の入力行に対して1つの出力行を返します。
集計関数と NULL 値¶
一部の集約関数は NULL 値を無視します。たとえば、 AVG は、次の式に基づいて、値 1、 5、 NULL の平均を 3 として計算します。
(1 + 5) / 2 = 3
分子と分母の両方で、2つの非NULL値のみが使用されます。
集計関数に渡されるすべての値が NULL の場合、集計関数は NULLを返します。
一部の集計関数には、複数の列を渡すことができます。例:
これらのインスタンスでは、個々の列が NULLの場合、集計関数は行を無視します。
たとえば、次のクエリでは、 COUNT は 4 ではなく 1 を返します。これは、選択した列に4行のうち3行に少なくとも1つの NULL 値が含まれているためです。
テーブルを作成し、値を入力します。
テーブルをクエリします。
同様に、2つ以上の列を参照する式で SUM が呼び出され、それらの列の1つ以上が NULL である場合、式は NULL に評価され、行は無視されます。
この動作は、一部の列が NULL である場合に行を破棄しない GROUP BY の動作とは異なります。