sql问题
table:
date | category
2021-02-02 | null
2021-02-02 | 1
2021-02-02 | 2
2021-02-03 | null
2021-02-04 | 3
2021-02-04 | 3
如果想看每天,category有null和非null的总数
是不是直接通过在case when的基础上来group by (如下)得到的答案是错,是不是必须先创建case when的子查询才是唯一办法?
select date, (case when category is null then ‘null’ else ‘notnull’ end) as category, count(*)
from table
group by date, category
主要是我发现出来的结果虽然是有null和notnull,但每天的notnull有好多个,感觉是原来有几个distinct值就会也有几个notnull, 似乎query是最后才把原值转换成notnull的。所以想知道是否可以不借助构建子查询来实现目的呢