Przeczytaj dokumentację MySQL w tym konkretnym punkcie.
Krótko mówiąc, MySQL umożliwia pominięcie niektórych kolumn z grupy GROUP BY, ze względu na wydajność, jednak działa to tylko jeśli wszystkie pominięte kolumny mają tę samą wartość (w ramach grupy), w przeciwnym razie wartości zwracane przez zapytanie są rzeczywiście nieokreślone , jak prawidłowo odgadli inni w tym poście. Aby mieć pewność, że dodanie klauzuli ORDER BY nie wprowadzi ponownie żadnej formy zachowania deterministycznego.
Chociaż nie jest to istotą problemu, ten przykład pokazuje, że użycie * zamiast jawnego wyliczenia pożądanych kolumn jest często złym pomysłem.
Fragment dokumentacji MySQL 5.0:
When using this feature, all rows in each group should have the same values for the columns that are omitted from the GROUP BY part. The server is free to return any value from the group, so the results are indeterminate unless all values are the same.