我在整个网站上查看了一个值在查询中出现的次数,并找到了答案,但没有在案例陈述中解决它。
这是我正在使用的查询返回结果,但结果应该更高......结果是70年代,但应该是这个数字的两倍。
查询:
select count(case when field#1 like "Y" then "1" else null end) as column name
from db
where datefield like '2015-04%'
答案 0 :(得分:0)
要完成这样的事情,使用条件聚合会更有帮助。
这意味着,您只需将条件放在SUM()函数中,而不是使用case语句对项进行求和:
SELECT SUM(field1 LIKE '%y%')'
...
如果您不想使用条件聚合方法,并且更喜欢使用CASE
,则需要使用SUM()
代替COUNT()
,如下所示:
SELECT SUM(CASE WHEN field1 LIKE '%y%' THEN 1 ELSE 0 END) AS counts
...