SQL GROUP BY和SUM

时间:2014-08-07 05:33:45

标签: sql

列出总人口至少为1亿的大陆。

World Table

name         continent  area    population  gdp
Afghanistan  Asia       652230  25500100    20343000000
Albania      Europe     28748   2831741     12960000000
Algeria      Africa     2381741 37100000    188681000000
Andorra      Europe     468     78115       3712000000
Angola       Africa     1246700 20609294    10009000990
...
...

我从

开始

SELECT continent FROM world WHERE ...有点卡在这里。

不确定如何利用GROUP BY和SUM。我需要GROUP BY continentSUM(population)但是我还在学习如何把事情放在一起。

预期产出

continent
Africa
Asia
Eurasia
Europe
North America
South America

2 个答案:

答案 0 :(得分:4)

SELECT   continent, SUM(population)
FROM     world
GROUP BY continent
HAVING   SUM(population) >= 100000000

答案 1 :(得分:2)

我将为您提供一个思考此问题的好框架。

由于同一大陆有多个记录,因此我们知道我们需要GROUP BY。一旦进行分组,我们就可以使用聚合运算来获得总和,即SUM。通过使用此聚合操作,我们可以在分组依据之后使用HAVING子句进行过滤。如果要过滤pre-groupby,可以使用WHERE子句。

SELECT continent FROM world GROUP BY continent HAVING SUM(population) > 
100000000;