【SQL – Oracle】グループ関数のNULL値の扱いについて

【SQL – Oracle】グループ関数のNULL値の扱いについて

グループ関数のNULL値の扱い

Oracleサーバーでは、計算式の中にNULL値が含まれると、その結果もNULL値になります。グループ関数では、COUNT関数の引数に「*」(アスタリスク)を指定した場合を除き、NULL値を無視して集計処理を行います。
AVG関数を使用して「10」、「20」、「30」、「NULL値」という4件のデータの平均を求め場合、NULL値を無視した3件のみで計算が行われ、平均値「20」が戻されます(10 + 20 + 30) /3)。

▶ グループ関数のNULL値の扱い

SQL> SELECT ename, comm
 2  FROM employees

ENAME               COMM
----------- -----------
佐藤
鈴木       30000
高橋       50000
田中      
渡辺      140000 5行が選択されました。 SQL> SELECT AVG(comm), SUM(comm) 2 FROM employees AVG(COMM) SUM(COMM)
------------ -----------
55000 220000

 

上記の例では、COMM列の平均値と合計値を表示しています。COMM列にはNULL値が含まれていますが、NULL値以外の4件のデータのみを使用して平均値や合計値が求められていることがわかります。ここではまず先にCOMM列の値をすべて表示しているので、それを見てそれぞれの関数がNULL値を無視していることを確認してください。

 

コメントを残す