HAVING klauzula jest oceniana przed SELECT - więc serwer jeszcze nie wie o tym aliasie.
-
Najpierw iloczyn wszystkich tabel w
FROMtworzona jest klauzula. -
WHEREklauzula jest następnie oceniana w celu wyeliminowania wierszy, które nie spełniają warunku_wyszukiwania. -
Następnie wiersze są grupowane przy użyciu kolumn w
GROUP BYklauzula. -
Następnie grupy, które nie spełniają
search_conditionwHAVINGklauzule są eliminowane. -
Następnie wyrażenia w
SELECTLista celów zestawień jest oceniana. -
Jeśli
DISTINCTsłowo kluczowe jest obecne w klauzuli select, zduplikowane wiersze są teraz eliminowane. -
UNIONjest pobierany po ocenie każdego podwyboru. -
Na koniec wynikowe wiersze są sortowane według kolumn określonych w
ORDER BYklauzula. -
TOPklauzula jest wykonywana.
Mam nadzieję, że to odpowiada na twoje pytanie. Wyjaśnia również, dlaczego alias działa w ORDER BY klauzula.