COUNT(studentuntil) AS CountNow,
COUNT(case when studentuntil > '2018-6-1' then 1 else 0 end) as Testdate
当我这样做时,结果是
CountNow 15
测试日期60
因此,当我检查CountNow时,我只有15条记录,这意味着Testdate应该具有15条或更少的记录,但是它也包含空条目。如何停止包含空值的
?我也尝试过
COUNT(case when studentuntil > '2018-6-1' and is not null then 1 else 0 end) as testdate
也没用
答案 0 :(得分:4)
如果您使用CASE
并用不可为空的值填充ELSE
部分,则将被计数。
您可以跳过ELSE
部分:
COUNT(case when studentuntil > '2018-6-1' then 1 end) as Testdate
或将COUNT
更改为SUM
:
SUM(case when studentuntil > '2018-6-1' then 1 ELSE 0 end) as Testdate
我认为最好的方法是
COUNT(*) FILTER(WHERE studentuntil > '2018-6-1')