注文したことのあるユーザーの人数を出したい。空欄に入るものは?
SELECT COUNT(____) AS nFROM orders;正答
- user_id
- DISTINCT user_id
- *
- user_id DISTINCT
解説
orders は 1 注文 1 行なので、同じユーザーが何度も注文していれば user_id が重複する。人数を数えるには COUNT(DISTINCT user_id) で重複を除いてから数える。COUNT(user_id) と COUNT(*) はどちらも注文の件数になり、人数より多くなる。DISTINCT は列の前に置くキーワードなので、user_id DISTINCT の順では構文エラーになる。
参考: www.sqlite.org
この問題を含む SQL のテストを制限時間つきで解く
SQLクイズへ