2015-05-18 77 views
0

有一個被稱爲cities,看起來像這樣的表:選擇最大列的值不提供所需結果

id | city | population | year 

我只需要:

每個城市選擇人口和一年的最大量的最大人口。沒有嵌套查詢一個解決方案是優選

所以,我想這一點:

SELECT `city`, MAX(`year`), MAX(`population`) FROM `cities` GROUP BY `city` 

但它給錯誤的結果。我究竟做錯了什麼?

+1

你不需要'MAX(一年)'你只需要'SELECT城市,一年中,MAX(人口)由城市GROUP BY city' –

+0

可以爲您提供樣品輸出,喜歡你期待和你有什麼? – Mukund

+0

MySQL?請標記,因爲MySQL有它自己的方法... – jarlh

回答

2

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 
+0

是否可以在沒有嵌套查詢的情況下執行相同的操作? – Yang

+0

@bad_boy我不確定 – Parado