集計関数

[Oracle] データ集計 列の平均取得SQL(AVG)

データ集計(列の平均)

列の平均を集計する

集計関数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です。

上記を実行し、抽出された結果がこちらです。

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です。

上記を実行し、抽出された結果がこちらです。

item_cd SUM(count)
001 8
002 2

item_cdがグループ化され、それぞれのcount列の平均値が集計されました。
 
なお、小数点以下はそのまま表示されるため、表示したくない場合はROUND関数等で小数点以下の値の処理を行いましょう。
 
 
以上が、列の平均を取得する集計関数「AVG」の使い方です。
ぜひ参考にしてみてください。