集計関数の入力と出力の関係は、多対 1 です。つまり、複数の入力レコードが 1 つの出力レコードに集約されます。 SQL 文では、group by 句と一緒に使用します。
COUNT
bigint count([distict|all] value)
使用法:
レコード数を数えます。
パラメーターの説明:
- distinct|all: カウント時に重複レコードを除外するかどうかを指定します。 デフォルトの all では、すべてのレコードが数えられます。 フィールド「distinct」を指定すると、一意のカウント値が使用されます。
- value: 任意のデータ型。 入力値が NULL の場合、対応する行はカウントされません。 Count (*) にすると、すべての行がカウントされます。
戻り値:
Bigint 型が返されます。
-- テーブル tbla に列 col1 があり、データ型が Bigint の場合
+------+
| COL1 |
+------+
| 1 |
+------+
| 2 |
+------+
| NULL |
+------+
select count(*) from tbla; -- 値は 3.
select count(col1) from tbla; -- 値は 2
-- test_src pデータは、次のように表示されます。
+-----+-------+
| key | value |
+-----+-------+
| a | 2.0 |
+-----+-------+
| a | 4.0 |
+-----+-------+
| b | 1.0 |
+-----+-------+
| b | 3.0 |
+-----+-------+
-- 次の文を実行し、結果を取得します。
select key, count(value) as count from test_src group by key;
+-----+-------+
| key | count |
+-----+-------+
| a | 2 |
+-----+-------+
| b | 2 |
+-----+-------+
-- 集計関数は、同じキー値を持つ集計値を計算します。前述のルールは、以降の関数にも適用されます。
AVG
double avg(double value)
decimal avg(decimal value)
使用法:
平均値を計算します。
パラメーターの説明:
value: Double 型または Decimal 型です。 入力値が String 型または Bigint 型の場合は、暗黙の変換で Double 型に変換されます。 それ以外のデータ型の場合は、例外が発生します。 入力値が NULL の場合、対応する行は演算で使用されません。 入力値は Boolean 型にはできません。
戻り値:
入力値が Decimal 型の場合、Decimal 型が返されます。 それ以外の有効なデータ型の場合、Double 型が返されます。
-- テーブル tbla に列値が含まれていて、データ型が Bigint の場合
+-------+
| value |
+-------+
| 1 |
| 2 |
| NULL |
+-------+
-- この列の平均: (1+2)/2=1.5
select avg(value) as avg from tbla;
+------+
| avg |
+------+
| 1.5 |
+------+
MAX
max(value)
使用法:
最大値を計算します。
パラメーターの説明:
value: 任意のデータ型。 列値が NULL の場合、対応する行は演算で使用されません。 Boolean 型の値は計算から除外されます。
戻り値:
戻り値と入力値のデータ型は同じです。
-- テーブル tbla に列 clo1 があり、データ型が Bigint の場合
+------+
| col1 |
+------+
| 1 |
+------+
| 2 |
+------+
| NULL |
+------+
Select max (value) from tbla; -- 戻り値は 2
MIN
MIN(value)
使用法:
列の最小値を計算します。
パラメーターの説明:
任意のデータ型。 列値が NULL の場合、対応する行は演算で使用されません。 Boolean 型は演算から除外されます。
-- テーブル tbla に列値が含まれていて、データ型が Bigint の場合
+------+
| value|
+------+
| 1 |
+------+
| 2 |
+------+
+------+
Select min (value) from tbla; -- 戻り値は 1
MEDIAN
double median(double number)
decimal median(decimal number)
使用法:
中央値を計算します。
パラメーターの説明:
number: Double 型または Decimal 型です。 入力値が String 型または Bigint 型の場合は、Double 型に変換されてから演算で使用されます。 それ以外のデータ型の場合は、例外が発生します。
戻り値:
Double 型または Decimal 型が返されます。
-- テーブル tbla に列値が含まれていて、データ型が Bigint の場合
+------+
| value|
+------+
| 1 |
+------+
| 2 |
+------+
| 3 |
+------+
| 4 |
+------+
| 5 |
+------+
select MEDIAN(value) from tbla; -- 戻り値は 3.0
STDDEV
double stddev(double number)
decimal stddev(decimal number)
使用法:
母集団の標準偏差を計算します。
パラメーターの説明:
number: Double 型または Decimal 型です。 入力値が String 型または Bigint 型の場合は、Double 型に変換されてから演算で使用されます。 それ以外のデータ型の場合は、例外が発生します。
戻り値:
Double 型または Decimal 型が返されます。
-- テーブル tbla に列値が含まれていて、データ型が Bigint の場合
+------+
| value|
+------+
| 1 |
+------+
| 2 |
+------+
| 3 |
+------+
| 4 |
+------+
| 5 |
+------+
select STDDEV(value) from tbla; -- 戻り値は 1.4142135623730951
STDDEV_SAMP
double stddev_samp(double number)
decimal stddev_samp(decimal number)
使用法:
母集団の標準偏差を計算します。
パラメーターの説明:
number: Double 型または Decimal 型です。 入力値が String 型または Bigint 型の場合は、Double 型に変換されてから演算で使用されます。 それ以外のデータ型の場合は、例外が発生します。
戻り値:
Double 型または Decimal 型が返されます。
-- テーブル tbla に列値が含まれていて、データ型が Bigint の場合
+------+
| value|
+------+
| 1 |
+------+
| 2 |
+------+
| 3 |
+------+
| 4 |
+------+
| 5 |
+------+
select STDDEV_SAMP(value) from tbla; -- 戻り値は 1.5811388300841898
SUM
sum(value)
使用法:
要素の合計を計算します。
パラメーターの説明:
value: Double 型、Decimal 型、Bigint 型のいずれかです。 入力値が String 型の場合は、Double 型に変換されてから演算で使用されます。 列の値が NULL の場合、その行はカウントされます。Boolean 型のデータは、計算から除外されます。
戻り値:
入力パラメータ値が Bigint 型の場合は、Bigint型が返されます。 入力パラメータ値が Double 型または String 型の場合は、Double 型が返されます。
-- テーブル tbla に列値が含まれていて、データ型が Bigint の場合
+------+
| value|
+------+
| 1 |
+------+
| 2 |
+------+
| NULL |
+------+
select sum(value) from tbla; -- 戻り値は 3
WM_CONCAT
string wm_concat(string separator, string str)
使用法:
特定の区切り文字を使用して、str の値を連結します。
パラメーターの説明:- Separator: String 型の定数です。 それ以外の型の定数の場合、または定数でない場合は、例外が発生する可能性があります。
- Str: String 型。 入力値が String 型の場合は、Double 型に変換されてから演算で使用されます。 別のデータ型の場合は、例外が発生します。
戻り値:
select wm_concat(',', name) from test_src;
の SQL 文では、test_src が空の場合には NULL が返されます。
COLLECT_LIST
ARRAY collect_list(col)
使用法:
特定のグループ内で、col で指定された式を使用してデータを配列に集約します。
パラメーターの説明:
col: テーブル列は任意のデータ型にすることができます。
戻り値:
新規データ型を使用するには、この関数を指定する SQL 文の前に set odps.sql.type.system.odps2=true;
を追加し、
SQL 文と一緒に送信します。
COLLECT_SET
ARRAY collect_set(col)
使用法:
特定のグループ内で、col で指定した式を使用して、データを非繰り返し要素の配列に集約します。
パラメーターの説明:
col: テーブル列は任意のデータ型にすることができます。
戻り値:
Array 型が返されます。
新規データ型を使用するには、この関数を指定する SQL 文の前に set odps.sql.type.system.odps2=true;
を追加し、SQL 文と一緒に送信します。