SQL GROUP BY 和 SUM

5
列出总人口至少达到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 并以某种方式 SUM(population),但我还在学习如何将这些元素组合在一起。

期望输出:

continent
Africa
Asia
Eurasia
Europe
North America
South America
2个回答

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

如果这回答了您的问题,最好将其标记为答案。通过点击打勾符号。 - Dan Walmsley

2

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

由于存在多个具有相同大陆的记录,我们知道需要使用GROUP BY。一旦我们进行分组,我们就可以使用聚合操作来获取总和,即SUM。通过使用这种聚合操作,我们可以在group by后使用HAVING子句进行过滤。如果我们想要在group by前进行筛选,则会使用WHERE子句。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接