我正在做一些面试练习,遇到了这个有趣的 SQL 问题。
给定一个具有模式世界的表(名称,大陆,面积,人口,gdp),找到每个大陆中最大的国家(按面积),显示大陆,名称和面积。
一个可能的解决方案是:
SELECT continent, name, area
FROM world x
WHERE area >= ALL (
SELECT area FROM world y
WHERE y.continent=x.continent)
我不太明白 ALL 关键字是如何工作的,所以我不知道这个查询实际上是如何解决问题的。另外,ALL 的使用在 SQL 平台之间是否有所不同?
最佳答案
至于你的问题 - 据我所知,你的 SQL 很简单:
SELECT
MAX(area) AS max_area,
continent,
name
GROUP BY
continent,
name
至于 ALL
通常,它的工作原理与 ALL
的含义完全一样:即某个值符合给定条件(在您的情况下,“大于或等于to") 针对子查询中的所有值。
关于mysql - 不同 SQL 平台中的 ALL 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22243532/