我正试图从sqlzoo解决这个问题:
7:找到每个大洲最大的国家(按地区),显示大陆,名称和区域。
我确实通过使用join找到了答案。但下面是另一种选择:
SELECT continent, name, area
FROM world x
WHERE area >= ALL(SELECT area
FROM world y
WHERE y.continent = x.continent
AND area > 0)
通常,子查询将返回"区域"的列表。值>= all(subquery)
表示"大于或等于列表的最大值",对所有大陆来说都是如此。
但是,最终结果会返回每个大陆的最大值
and area>0
在子查询中的作用是什么?