mysql - 不同 SQL 平台中的 ALL 子句

标签 mysql sql database postgresql

我正在做一些面试练习,遇到了这个有趣的 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/

相关文章:

php - 发送带号码的帖子数据

mysql - 是否可以将此业务逻辑放在 SQL 查询中?

sql - 带条件的 T-SQL OVER/PARTITION BY 查询

java - HQL 按表达式排序

android - Android数据库;解决最后几个错误

c# - 是否可以从 SQL Server 获取数据表列表?

mysql - 在 phpMyAdmin - mySQL 上保存数据库

PHP MySQL 增删改查 : Am I deleting safely?

mysql - 按特定 ID 删除一行,该行不存在于另一个表列 ID 中

mysql:执行 "You can turn off this feature to get a quicker startup with -A"后 "use my-database"是什么意思?