有一個被稱爲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