Existe uma maneira super simples de fazer isso no mysql:
select *
from (select * from mytable order by `Group`, age desc, Person) x
group by `Group`
Isso funciona porque no mysql você está autorizado a não agregada não-grupo-por colunas, caso em que o mysql retorna apenas a primeira linha. A solução é ordenar primeiro os dados de modo que, para cada grupo, a linha que você deseja seja primeiro e, em seguida, agrupe pelas colunas para as quais deseja o valor.
Você evita subconsultas complicadas que tentam encontrar o max()etc, e também os problemas de retornar várias linhas quando há mais de uma com o mesmo valor máximo (como as outras respostas fariam)
Nota: Esta é uma solução somente para mysql . Todos os outros bancos de dados que eu conheço lançarão um erro de sintaxe SQL com a mensagem "colunas não agregadas não estão listadas no grupo por cláusula" ou similar. Como esta solução usa comportamento não documentado , o mais cauteloso pode querer incluir um teste para afirmar que continua funcionando se uma versão futura do MySQL alterar esse comportamento.
Atualização da versão 5.7:
Desde a versão 5.7, a sql-modeconfiguração inclui ONLY_FULL_GROUP_BYpor padrão, portanto, para fazer isso funcionar, você não deve ter essa opção (edite o arquivo de opções do servidor para remover essa configuração).