Получить лучшие n записей для каждой группы сгруппированных результатов

Ниже приведен простейший возможный пример, хотя любое решение должно быть в состоянии масштабироваться до любого количества необходимых результатов:

Учитывая приведенную ниже таблицу с столбцами персонажа, группы и возраста, как бы выget the 2 oldest people in each group? (Связи внутри групп не должны давать больше результатов, но дают первые 2 в алфавитном порядке)

+--------+-------+-----+
| Person | Group | Age |
+--------+-------+-----+
| Bob    | 1     | 32  |
| Jill   | 1     | 34  |
| Shawn  | 1     | 42  |
| Jake   | 2     | 29  |
| Paul   | 2     | 36  |
| Laura  | 2     | 39  |
+--------+-------+-----+

Требуемый набор результатов:

+--------+-------+-----+
| Shawn  | 1     | 42  |
| Jill   | 1     | 34  |
| Laura  | 2     | 39  |
| Paul   | 2     | 36  |
+--------+-------+-----+

NOTE: Этот вопрос основан на предыдущемПолучить записи с максимальным значением для каждой группы сгруппированных результатов SQL - для получения по одной верхней строке от каждой группы и получения отличного специфичного для MySQL ответа от @Bohemian:

select * 
from (select * from mytable order by `Group`, Age desc, Person) x
group by `Group`

Хотелось бы иметь возможность построить это, хотя я не понимаю, как.

Ответы на вопрос(10)

Ваш ответ на вопрос