Для меня что-то вроде
SUBSTRING_INDEX(group_concat(col_name order by desired_col_order_name), ',', N)
работает отлично. Нет сложного запроса.
например: get top 1 для каждой группы
SELECT
*
FROM
yourtable
WHERE
id IN (SELECT
SUBSTRING_INDEX(GROUP_CONCAT(id
ORDER BY rate DESC),
',',
1) id
FROM
yourtable
GROUP BY year)
ORDER BY rate DESC;