Действителното изпълнение на MySQL операторите е малко сложно. Стандартът обаче определя реда на интерпретация на елементите в заявката. Това е основно в реда, който сте посочили, въпреки че според мен HAVING и GROUP BY може да дойде след SELECT :
FROMклаузаWHEREклаузаSELECTклаузаGROUP BYклаузаHAVINGклаузаORDER BYклауза
Това е важно за разбирането как се анализират заявките. Не можете да използвате псевдоним на колона, дефиниран в SELECT в WHERE клауза, например, защото WHERE се анализира преди SELECT . От друга страна, такъв псевдоним може да бъде в ORDER BY клауза.
Що се отнася до реалното изпълнение, това наистина зависи от оптимизатора. Например:
. . .
GROUP BY a, b, c
ORDER BY NULL
и
. . .
GROUP BY a, b, c
ORDER BY a, b, c
и двете имат ефекта на ORDER BY не се изпълнява изобщо - и така не се изпълнява след GROUP BY (в първия случай ефектът е премахването на сортирането от GROUP BY а във втория ефектът е да не се прави нищо повече от GROUP BY вече го прави).