SQL4 択難易度 基礎

次の SQL の結果は?(全 5 行、col が NULL の行が 2 行)

SELECT COUNT(*) AS a, COUNT(col) AS b FROM t;

正答

  1. 5, 5
  2. 3, 3
  3. 3, 5
  4. 5, 3

解説

COUNT(*) は行そのものを数えるので NULL の有無に関係なく 5 になる。COUNT(col) は col が NULL でない行だけを数えるので 5 - 2 = 3 になる。選択肢 1 の 5, 5 は COUNT(col) も NULL を数えると思った誤り。「値が入っている件数」を知りたいときは COUNT(列名)、行数を知りたいときは COUNT(*) と使い分ける。

参考: www.sqlite.org

countnull

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

SQLクイズへ