データ集計(列の平均)
列の平均を集計する
集計関数AVGを使用することで、SELECT句で指定した列の平均値を取得することが可能です。
SELECT AVG(列1) FROM テーブル1;
それではサンプルを見てみましょう。
以下のようなsaleテーブルがあります。
sale_day | item_cd | count | emp_cd |
---|---|---|---|
20191104 | 001 | 10 | A00001 |
20191104 | 001 | 5 | A00003 |
20191105 | 002 | 3 | A00003 |
20191106 | 002 | 2 | A00004 |
count列を集計し、平均値を取得するSQLです。
1 |
SELECT AVG(count) FROM sale; |
上記を実行し、抽出された結果がこちらです。
AVG(count) |
---|
5 |
count列の平均値が集計されました。
列のデータごとに平均値を集計する
GROUP BY句を使用することで、列を指定してグループ化して集計することが可能です。
[Oracle] データ集計 基本SQL(GROUP BY)データ集計(基本形)
検索結果を集計する
GROUP BY句を使用することで、SELECT句で取得した結果をグループ化して集計するこ...
SELECT 集計キー1, 集計キー2 ・・・ AVG(列1), AVG(列2) ・・・
FROM テーブル1
GROUP BY 集計キー1, 集計キー2;
それではサンプルを見てみましょう。
以下のようなsaleテーブルがあります。
sale_day | item_cd | count | emp_cd |
---|---|---|---|
20191104 | 001 | 10 | A00001 |
20191104 | 001 | 6 | A00003 |
20191105 | 002 | 3 | A00003 |
20191106 | 002 | 1 | A00004 |
item_cd列でグループ化し、count列のデータの平均を集計するSQLです。
1 2 3 |
SELECT item_cd, AVG(count) FROM sale GROUP BY item_cd ORDER BY item_cd; |
上記を実行し、抽出された結果がこちらです。
item_cd | SUM(count) |
---|---|
001 | 8 |
002 | 2 |
item_cdがグループ化され、それぞれのcount列の平均値が集計されました。
なお、小数点以下はそのまま表示されるため、表示したくない場合はROUND関数等で小数点以下の値の処理を行いましょう。
以上が、列の平均を取得する集計関数「AVG」の使い方です。
ぜひ参考にしてみてください。