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