我的计数()如何通过评估?
我相当新的SQL,我试图创建一个查询,试图确定在哪个国家只说3种特定语言(西班牙语,意大利语,德语)说话,没有其他语言。我的计数()如何通过评估?
select country
from langusage
group by country
having count(case when language in ('spanish','german','italian') then 1 else 5 end)=3
输出是所有拥有至少一种上述语言的国家。他们如何通过'= 3'测试?
原因是count(1)
= count(5)
。 count()
计算非NULL
值的数量。
您打算sum()
:
select country
from langusage
group by country
having sum(case when iso in ('spanish', 'german', 'italian') then 1 else 5 end) = 3
有人可以向我解释案件陈述的用途吗?为什么是1或5? – Charleh
@Charleh。 。 。 OP只是试图将三种语言加起来的值加起来为3,但没有别的。 –
Gordon Linoff是正确的 –
什么是你期待'having'条款里面做的是count语句?计数将返回1或5次,次数为x。你正在计算它返回一个值的次数,但是case语句中的1和5是多少? – Charleh