Para isso, você precisa de uma função de janela SQL . Não há como fazer isso no Hibernate/HQL, HQL não suporta funções de janela.
greatest-n-per-group
tag tem as respostas corretas. Por exemplo, esta abordagem
é bastante legível, embora nem sempre ideal.