集計関数
空集合に集計関数を使用すると、null が返されます。たとえば、外部共通グルーピングの不一致列で集計関数を使用すると、空集合になる可能性があります。
集計関数の前に group by がない場合、各行が独自のグループとして処理されます。
次の表は、サポートされる集計関数の一覧です。
| 集計関数 | 説明 |
|---|---|
| avg() または average() | 数値項目の平均値を返します。 たとえば、平均マイル数を計算するには、次のステートメントを使用します。
|
| count() | クエリ条件に一致する行数を返します。 たとえば、航空会社数を計算するには、次のステートメントを使用します。
count() 関数は、group または cogroup ステートメントへの入力ストリームで実行されます。新しくグループ化されたストリームやグループ化されていないストリームでは実行されません。
|
| first() | 最初のタプルの値を返します。期待どおりに動作させるには、並び替え順を把握しているか、その基準の値が集合内のすべてのタプルで同じであることがわかっている必要があります。 たとえば、出発地と目的地の各組み合わせ間の距離を計算するには、次のステートメントを使用します。 |
| last() | 最後のタプルの値を返します。 たとえば、出発地と目的地の各組み合わせ間の距離を計算するには、次のステートメントを使用します。 |
| max() | 項目の最大値を返します。 この関数は、引数として基準のみを取ります。ディメンションを取ることはできません。 |
| median() | グループ化された数値型の式を受け入れ、中央値を返します (並び替えた順序で null 値は無視)。1 つの中央値が特定できない場合 (null 以外の値の数が偶数の場合)、median は中央値に最も近い 2 つの数値の平均を返します。 式には「xInt」や「price」など任意の識別子を使用できますが、price/100 または ceil(distance) などの複雑な式や、2.5 などのリテラルは使用できません。 |
| min() | 項目の最小値を返します。 この関数は、引数として基準のみを取ります。ディメンションを取ることはできません。 |
| sum() | 数値項目の合計を返します。 |
| unique() | 一意の値の数を返します。 たとえば、航空会社の出発地数と目的地数を調べるには、次のステートメントを使用します。 |
| stddev() | グループで計算された標本標準偏差を返します。 グループ化された数値型の式を受け入れます。グループ内の null 以外の値の数が 1 の場合、stddev は null を返します。それ以外の場合、stddev はグループで計算された標本標準偏差を返します (null 値は無視)。 式には「xInt」や「price」など任意の数値識別子を使用できますが、price/100 または ceil(price) などの複雑な式や、2.5 などのリテラルは使用できません。 |
| stddevp() | グループで計算された母標準偏差を返します。 グループ化された数値型の式を受け入れ、グループで計算された母標準偏差を返します (null 値は無視)。式には「xInt」や「price」など任意の数値識別子を使用できますが、price/100 または ceil(price) などの複雑な式や、2.5 などのリテラルは使用できません。 |
| var() | グループで計算された標本分散 (「不偏分散」とも呼ばれる) を返します。
グループ化された数値型の式を受け入れます。グループ内の null 以外の値の数が 1 の場合、var は null を返します。それ以外の場合、var はグループで計算された標本分散を返します (null 値は無視)。式には「xInt」や「price」など任意の数値識別子を使用できますが、price/100 または ceil(price) などの複雑な式や、2.5 などのリテラルは使用できません。 |
| varp() | グループで計算された母分散 (「有偏分散」とも呼ばれる) を返します。 グループ化された数値型の式を受け入れ、グループで計算された母分散を返します (null 値は無視)。式には「xInt」や「price」など任意の数値識別子を使用できますが、price/100 または ceil(price) などの複雑な式や、2.5 などのリテラルは使用できません。 |
| percentile_disc() | 行セット全体または行セットの個別のパーティション内で並び替えられた値の特定のパーセントを計算します。完全な構文は次のとおりです。 percentile_disc(p as numeric) within group (order by expr [asc | desc]) percentile_disc 関数はグループ化された数値型の式 expr を受け入れ、指定された順序 (asc または desc) で並び替えます。順序が指定されていない場合、デフォルトの順序は asc です。並び替えた順序でグループ内の値の (100*p)% の位置にある値を返します (null 値は無視)。 p には、小数点以下 8 桁の精度を持つ 0 ~ 1 の任意の実数値を指定できます。expr には「xInt」や「price」など任意の識別子を使用できますが、price/100 または ceil(distance) などの複雑な式や、2.5 などのリテラルは使用できません。 expr に正確な 100*p パーセントの位置の値がない場合、percentile_disc は並び替え順で expr の次の位置にある値を返します。 たとえば、Mea1 に値 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] が含まれる場合、次の値が返されます。 クエリ例: |
| percentile_cont() | 列の値の連続型分散に基づいてパーセントを計算します。完全な構文は次のとおりです。 percentile_cont(p as numeric) within group (order by expr [asc | desc]) percentile_cont 関数はグループ化された数値型の式 expr を受け入れ、指定された順序 (asc または desc) で並び替えます。順序が指定されていない場合、デフォルトの順序は asc です。並び替えた順序でグループ内の値の (100*p)% の位置にある値を返します (null 値は無視)。 p には、0 ~ 1 の任意の実数値を指定できます。expr には「xInt」や「price」など任意の識別子を使用できますが、price/100 または ceil(distance) などの複雑な式や、2.5 などのリテラルは使用できません。 expr に正確な 100*p パーセントの位置の値がない場合、percentile_cont は expr 内でその位置に最も近い 2 つの値から線形補間された値を返します。 たとえば、Mea1 に値 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] が含まれる場合、次の値が返されます。 クエリ例: |