Выбор максимального значения столбца не дает желаемых результатов

Там есть таблица, которая называется 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
Другие вопросы по тегам