选择人口大于410000的城市的数量

时间:2018-09-06 08:41:14

标签: sql apache-spark-sql

我是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

请告诉我我的查询出了什么问题

1 个答案:

答案 0 :(得分:1)

您应该使用两种聚合级别:

select count(*)
from (select city, sum(population) as population
      from city_tabl
      group by city
      having sum(population) > 410000
     ) c;