Wykonanie zapytania może ignorować ORDER BY
w FROM ( SELECT ... )
. To prawdopodobnie prawdziwy powód różnicy, którą widzisz. (Nie sądzę, żeby odpowiedź Gordona była istotna).
Problem jest omawiany tutaj (4 lata temu):https://mariadb.com/kb/en/mariadb/group-by-trick-has-been-optimized-away/ ; który ma jedno rozwiązanie, poprzez ustawienie.
Oto kilka innych rozwiązań:http://mysql.rjweb.org/doc.php/groupwise_max ; są zaprojektowane tak, aby były wydajne.
Jeszcze jedno możliwe rozwiązaniem jest dodanie fałszywego LIMIT
z dużą liczbą w podzapytaniu.