SQL○×難易度 標準

対象の列がすべて NULL のとき、SUM(列) の結果は 0 ではなく NULL になる。

正答

○ 正しい

解説

正しい。0 になると思い込みやすいが、SUM は NULL を無視して合計するので、合計する値が 1 つも無ければ結果は 0 ではなく NULL になる。対象行が 0 件のときも同じく NULL になる。アプリ側で数値として扱いたい場合は COALESCE(SUM(col), 0) と書いて 0 に置き換える。COUNT だけは例外で、該当が無くても 0 を返す。SQLite 独自の TOTAL() は 0.0 を返すが方言なので注意。

参考: www.sqlite.org

sumnull

この問題を含む SQL のテストを制限時間つきで解く

SQLクイズへ