前提・実現したいこと
MySQLでcount0件のデータも含めて表示したい。
テストの問題番号とそれに紐付く点数を表示したanswersテーブルがあります。
id | question_id | score |
---|---|---|
1 | 1 | 9 |
2 | 1 | 9 |
3 | 1 | 10 |
4 | 3 | 1 |
5 | 3 | 1 |
6 | 3 | 5 |
7 | 1 | 6 |
8 | 3 | 8 |
9 | 2 | 2 |
sql
1select question_id,count(*) 2from answers 3where score in (9,10) 4group by question_id;
scoreが9点以上のquestion_idとそのscoreを集計し、scoreが9点以上に該当しないquestion_idには明示的に0またはNULLを表示したい
実現したいSQL結果
question_id | count(*) |
---|---|
1 | 28 |
2 | 0 or NULL |
3 | 0 or NULL |
発生している問題・エラーメッセージ
しかし、実際にはこのSQLの結果が下記のようになってしまいます。
question_id | count(*) |
---|---|
1 | 28 |
色々と調べてみましたが、解決に至るようなヒントが得られなかったため、
countが0の時も表示されるようにするSQLをお分かりの方がおりましたらご教授いただけたら幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/22 03:17