id| country | salary
1 | sweden | 3000
2 | germany| 3900
3 | sweden | 3500
4 | sweden | 2900
5 | germany| 3300
Необходимо:
получить записи с максимальными значениями salary в каждой из стран
получить id этих записей
Ожидаемый рез-т:
id | country | salary
3 | sweden | 3500
2 | germany| 3900
Какой использовать запрос, чтобы добиться этого рез-та?
запрос: SELECT id, max(salary) FROM t GROUP BY country;
возвращает ошибку: столбец "t.id" должен фигурировать в предложении GROUP BY или использоваться в агрегатной функции
SELECT t.id, t.country, t.salary
FROM t
INNER JOIN
( SELECT country, max(salary) AS max_salary FROM t GROUP BY country ) tm
ON t.country = tm.country AND t.salary = tm.max_salary