集計関数は、一連のレコードをスキャンして、単一の行を返します。この一連のレコードは、テーブルまたはビュー、あるいはサブクエリの結果です。OceanBaseがサポートする集計関数の詳細については、『OceanBase SQLステートメント(Oracleモード)』を参照してください。
集計関数は通常 GROUP BY 句と共に使用され、1つまたは複数の列の値でグループ分けを行い、各グループごとに1行の結果を返します。
例
おもちゃの注文の売上高を集計する。
サンプルテーブル
toys_order_nyを作成し、注文データを入力します。obclient> CREATE TABLE toys_order_ny ( order_id NUMBER, toy_id NUMBER, toy_dealer VARCHAR2(20), toy_price NUMBER, toy_amount NUMBER ); Query OK, 0 rows affectedtoys_order_nyテーブルにデータを挿入します。obclient> INSERT INTO toys_order_ny VALUES ( 1001,1, 'A',53.12,100 ), ( 1002,2, 'A',24.8,190 ),( 1003,3, 'A',19.9,330) ,( 1004,1, 'B',53.12,50 ),( 1005,2, 'B',24.8,200 ), ( 1006,3, 'B',19.9,350 ),( 1007,2, 'A',24.8,100 ); 7 rows in setおもちゃの注文の売上高を集計関数を使って集計します。
obclient> SELECT toy_id , count(*) order_count , sum(toy_amount) sum_amount , round(avg(toy_amount),2) avg_amount , min(toy_amount) min_amount ,max(toy_amount) max_amount FROM toys_order_ny GROUP BY toy_id ORDER BY toy_id; +--------+-------------+------------+------------+------------+------------+ | toy_id | order_count | sum_amount | avg_amount | min_amount | max_amount | +--------+-------------+------------+------------+------------+------------+ | 1 | 2 | 150 | 75.00 | 50 | 100 | | 2 | 3 | 490 | 163.33 | 100 | 200 | | 3 | 2 | 680 | 340.00 | 330 | 350 | +--------+-------------+------------+------------+------------+------------+ 3 rows in set
OceanBaseデータベースが現在のバージョンでサポートする集計関数の詳細については、マニュアル 『OceanBaseデータベースSQLステートメント(Oracleモード)』 を参照してください。