SQLのAVG関数でNULL値が含まれる場合の挙動を解説

SQLで数値データを平均化する際には、よく`AVG`関数が用いられます。しかし、データセットに`NULL`値が含まれる場合、この`AVG`関数はどのように挙動するのでしょうか。本記事では、`NULL`値がデータに含まれる場合の`AVG`関数の挙動について、具体的な例を交えて詳しく解説します。

目次

AVG関数とは?

`AVG`関数は、SQLで数値列の平均値を求めるために使用される関数です。基本的な使用方法は非常にシンプルで、以下のようなSQLクエリを使用します。

SELECT AVG(列名) FROM テーブル名;

NULL値とは?

`NULL`は、データベースにおいて「値が不明」または「存在しない」ことを示す特別なマーカーです。

NULL値がデータに含まれる理由

一般的に、`NULL`値がデータに含まれる主な理由は以下の通りです。

  • データが未入力である
  • データが不明である
  • データが適用されない

AVG関数でNULL値が含まれる場合の挙動

`NULL`値が含まれるデータセットに対して`AVG`関数を適用した場合、その`NULL`値は無視されて平均値が計算されます。

具体的な例

例として、以下のような「成績」テーブルがあるとします。

生徒ID成績
180
2NULL
390
成績テーブル

この場合、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`関数などを用いることで対応可能です。データ解析やレポート作成に際して、この挙動を理解しておくことは非常に重要です。

コメント

コメントする

目次