SQL4 択難易度 標準

次の SQL の結果は?(score は 10, 20, NULL の 3 行)

SELECT SUM(score) AS s, AVG(score) AS a FROM t;

正答

  1. 30, 10
  2. NULL, NULL
  3. 0, 0
  4. 30, 15

解説

集計関数は NULL の行を計算から除く。SUM は 10 + 20 = 30、AVG は NULL を除いた 2 件の平均で 15 になる。選択肢 1 の 30, 10 は NULL を 0 とみなして 3 で割った誤りで、NULL を 0 扱いしたいなら COALESCE(score, 0) を明示する必要がある。選択肢 2 のように 1 つでも NULL があれば全体が NULL になることはない。

参考: www.sqlite.org

sumavgnull

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

SQLクイズへ