我是sql的新手。我在表中有
之类的数据district city state population
d1 c1 s1 2000
d2 c1 s1 10000
d3 c1 s1 400000
d1 c2 s2 500000
我想统计人口超过410000的城市
所以我的期望输出应为2,因为有两个城市c1和c2。我想先按城市分组,然后计算每个城市的人口总和,然后检查其人口是否大于410000 所以我已经使用查询
select count(city) from city_table group by city having sum(population) > 410000;
但是我得到的输出是
count(city)
3
1
请告诉我我的查询出了什么问题
答案 0 :(得分:1)
您应该使用两种聚合级别:
select count(*)
from (select city, sum(population) as population
from city_tabl
group by city
having sum(population) > 410000
) c;