【发布时间】:2021-05-15 14:14:13
【问题描述】:
我正在尝试构建一个非常简单的查询来返回特定条件的注册计数。数据库不包含一个完全符合我需要的表,所以我使用了一堆 CASE WHEN。但是,当某个 CASE WHEN 语句的注册为 0 时,查询不会返回一行,我希望它显示为 0。示例:
查询:
select
(case
when f_id BETWEEN 5700 AND 5718 THEN 'Group A'
when f_id BETWEEN 5719 AND 5736 THEN 'Group B'
when f_id BETWEEN 5531 AND 5544 THEN 'Group C'
else 'Other'
end) as 'Title1',
count(s_id)
from table;
结果:
|Title1|count(s_id)|
|------|-----------|
|Group A|5|
|Group C|2|
我希望 B 组有一行在 count(s_id) 列中显示为 0。我已经在 CASE WHEN 和 IFNULL(count(s_id),0) 周围尝试了 IFNULL,查询要么出错,要么返回上面的同一张表。
我知道这非常简单,但我对 SQL 还是很陌生,所以任何建议都将不胜感激。谢谢!
【问题讨论】: