有一个被称为cities
,看起来像这样的表:选择最大列的值不提供所需结果
id | city | population | year
我只需要:
每个城市选择人口和一年的最大量的最大人口。没有嵌套查询一个解决方案是优选
所以,我想这一点:
SELECT `city`, MAX(`year`), MAX(`population`) FROM `cities` GROUP BY `city`
但它给错误的结果。我究竟做错了什么?
有一个被称为cities
,看起来像这样的表:选择最大列的值不提供所需结果
id | city | population | year
我只需要:
每个城市选择人口和一年的最大量的最大人口。没有嵌套查询一个解决方案是优选
所以,我想这一点:
SELECT `city`, MAX(`year`), MAX(`population`) FROM `cities` GROUP BY `city`
但它给错误的结果。我究竟做错了什么?
1您必须采取最大人口数量,而不是您需要的最大人口数量。试试这个:
SELECT C.city, max(C2.year), C.MAX_population
FROM
(SELECT city, MAX(population) AS MAX_population FROM cities GROUP BY city) C
JOIN cities C2 on C2.city = C.city and C2.population = C.MAX_population
GROUP BY C.city, C.MAX_population
你不需要'MAX(一年)'你只需要'SELECT城市,一年中,MAX(人口)由城市GROUP BY city' –
可以为您提供样品输出,喜欢你期待和你有什么? – Mukund
MySQL?请标记,因为MySQL有它自己的方法... – jarlh