SQLで数値データを平均化する際には、よく`AVG`関数が用いられます。しかし、データセットに`NULL`値が含まれる場合、この`AVG`関数はどのように挙動するのでしょうか。本記事では、`NULL`値がデータに含まれる場合の`AVG`関数の挙動について、具体的な例を交えて詳しく解説します。
目次
AVG関数とは?
`AVG`関数は、SQLで数値列の平均値を求めるために使用される関数です。基本的な使用方法は非常にシンプルで、以下のようなSQLクエリを使用します。
SELECT AVG(列名) FROM テーブル名;
NULL値とは?
`NULL`は、データベースにおいて「値が不明」または「存在しない」ことを示す特別なマーカーです。
NULL値がデータに含まれる理由
一般的に、`NULL`値がデータに含まれる主な理由は以下の通りです。
- データが未入力である
- データが不明である
- データが適用されない
AVG関数でNULL値が含まれる場合の挙動
`NULL`値が含まれるデータセットに対して`AVG`関数を適用した場合、その`NULL`値は無視されて平均値が計算されます。
具体的な例
例として、以下のような「成績」テーブルがあるとします。
生徒ID | 成績 |
---|---|
1 | 80 |
2 | NULL |
3 | 90 |
この場合、AVG関数を適用するSQLクエリは以下の通りです。
SELECT AVG(成績) FROM 成績;
このクエリの結果は、(80 + 90) / 2 = 85 となります。`NULL`値は無視されています。
NULL値を0として扱いたい場合
もし`NULL`値を0として扱い、平均値を計算したい場合は、`COALESCE`関数を使用します。
SELECT AVG(COALESCE(成績, 0)) FROM 成績;
この場合、結果は(80 + 0 + 90) / 3 = 56.67 となります。
まとめ
`AVG`関数は`NULL`値を無視して平均値を計算します。`NULL`値を特定の数値として扱いたい場合は、`COALESCE`関数などを用いることで対応可能です。データ解析やレポート作成に際して、この挙動を理解しておくことは非常に重要です。
created by Rinker
¥4,554
(2024/11/09 10:27:08時点 Amazon調べ-詳細)
コメント