Как отсортировать и сгруппировать по первому элементу?

Использую MySql, пытаюсь получить лучшее значение в лучшей группировки и вернуть весь объект, написал:

SELECT t.* 
FROM ( SELECT * 
       FROM trainingobjects 
       ORDER BY SameIndex desc) t 
GROUP BY t.ApplicationUserId 
order by t.SameIndex desc

Не могу понять, почему возвращает не лучший результат, а другой.


Ответы (1 шт):

Автор решения: Akina

Навскидку (пока, правда, задача неясна) должно быть что-то типа

SELECT t1.* 
FROM trainingobjects t1
JOIN ( SELECT ApplicationUserId, MAX(SameIndex) SameIndex 
       FROM trainingobjects 
       GROUP BY ApplicationUserId ) t2 USING (ApplicationUserId, SameIndex)
ORDER BY t1.SameIndex desc
→ Ссылка