gpt4 book ai didi

mysql - SQLZOO- 使用 GROUPBY 查找大陆上最大的国家;这可能吗?

转载 作者:行者123 更新时间:2023-12-01 00:18:36 27 4
gpt4 key购买 nike

我正在解决 SQLZOO 的练习问题,但不确定为什么我尝试的解决方案不起作用,因为它对我来说很有意义。
这是表格的格式::

 -------------------------------------------------------------
| name continent area population gdp |
|-------------------------------------------------------------|
| Afghanistan Asia 652230 25500100 20343000000 |
| . |
| . |
| . |
| |
-------------------------------------------------------------
问题如下:
找出每个大​​陆最大的国家(按地区),显示大陆、名称和地区。
这是我想解决的方法:
SELECT continent, name, area 
FROM world
WHERE name IN (SELECT continent, name, MAX(area)
FROM world
GROUP BY continent);
我知道这行不通,但为什么不呢?似乎嵌套的 SELECT 语句正在查找每个大陆最大面积的国家,不是吗?
对此的实际解决方案如下:
SELECT continent, name, area 
FROM world x
WHERE area >= ALL
(SELECT area
FROM world y
WHERE y.continent=x.continent
AND area>0)
但这似乎是一种复杂的提出方法;;这种方式最有意义吗?任何想法表示赞赏
先感谢您!!

最佳答案

虽然快速一瞥这个查询似乎有效

SELECT continent, name, area 
FROM world
WHERE area IN (SELECT MAX(area)
FROM world
GROUP BY continent);

Demo 1

考虑到当前数据,会出现一些问题,同时添加一些其他新记录,例如在下面的演示中。而不是以上更喜欢这个:
SELECT w1.continent, name, w1.area 
FROM world AS w1
JOIN (SELECT continent, MAX(area) AS area
FROM world
GROUP BY continent) AS w2
ON w1.continent = w2.continent
AND w1.area = w2.area

Demo 2

关于mysql - SQLZOO- 使用 GROUPBY 查找大陆上最大的国家;这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50517185/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com