平均値を求める 集約関数「AVG」
集約関数の「AVG」を使うと、平均値を求めることができます。
集約関数「AVG」の基本構文
「ALL」と「DISTINCT」はオプションで、省略可能です。
省略した場合は、デフォルトの「ALL」となります。
「DISTINCT」は重複行を除いてくれます。
AVG([ALL | DISTINCT] <数値式>)
検証用のテーブルとデータの用意
以下のテーブルとデータを使用して検証を行っていきましょう。
id | year | month | sales |
---|---|---|---|
001 | 2019 | 1 | 100 |
002 | 2019 | 1 | 200 |
003 | 2019 | 2 | 300 |
004 | 2019 | 2 | NULL |
SQL> CREATE TABLE test_table 2 ( 3 id VARCHAR2(3) 4 ,year NUMBER 5 ,month NUMBER 6 ,sales NUMBER 7 ); 表が作成されました。 SQL> INSERT ALL 2 INTO test_table VALUES('001', '2019', '1' , '100') 3 INTO test_table VALUES('002', '2019', '1' , '200') 4 INTO test_table VALUES('003', '2019', '2' , '300') 5 INTO test_table VALUES('004', '2019', '2' , NULL) 6 SELECT * FROM dual; 4行が作成されました。
INSERT文の書き方が少し特殊ですが、複数行INSERTっていう記述の仕方をしています。気になるかたは別に記事書いているので構文とか確認してみてください。
複数行INSERTの構文について
集約関数「AVG」の使用例
ここで注目してほしいのが「NULL」の取り扱いです。
「NULL」は集計関数を使用する際にすべて除外されます。
※数字の「0」とも扱いが異なります。計算から除外されるということを覚えておきましょう!
SQL> SELECT AVG(sales) FROM test_table; AVG(SALES) ---------- 200
コメント