Это не проблема group by
. Это проблема фильтрации. Итак, подумайте where
, а не group by
:
SELECT p.*
FROM Person p
WHERE PAge = (SELECT MIN(p2.PAge) FROM Person p2 WHERE p2.PRanking = p.PRanking);
Если индекс равен Person(Pranking, PAge)
, производительность, скорее всего, будет ниже, чем у любого другого метода.