我是SQL的新手并且真的难以接受一个特定的问题,如果有人能花时间帮我解决这个问题,我真的很感激。
问题:向人口最少的大陆(除南极洲外)展示3个最大的国家(按人口计算)。
SELECT name ,
country.population ,
continent ,
SUM(country.population) OVER ( PARTITION BY continent ) continent_population
FROM country
WHERE continent != 'Antarctica';
到目前为止,我已经得到了这个问题,这个问题让我得到了每个大陆相应人口的表格,但是我错过了将其缩小到人口最少的大陆。谢谢你的帮助
数据库ER图如下
答案 0 :(得分:0)
我认为您可以订购结果并获得前三名。
SELECT
name ,
country.population ,
continent ,
SUM(country.population) OVER ( PARTITION BY continent ) continent_population
FROM country
WHERE continent != 'Antarctica'
ORDER BY
continent_population ASC,
country.population DESC
LIMIT 3;