HAVING клаузата се оценява преди SELECT - така че сървърът все още не знае за този псевдоним.
-
Първо, произведението на всички таблици в
FROMсе формира клауза. -
WHEREслед това се оценява, за да се елиминират редове, които не отговарят на условието за_търсене. -
След това редовете се групират с помощта на колоните в
GROUP BYклауза. -
След това, групи, които не отговарят на
search_conditionвHAVINGклауза се премахват. -
След това изразите в
SELECTсписъкът с целеви изявления се оценява. -
Ако
DISTINCTключовата дума присъства в клаузата за избор, дублиращите се редове вече са елиминирани. -
UNIONсе взема след оценка на всеки подизбор. -
Накрая, получените редове се сортират според колоните, посочени в
ORDER BYклауза. -
TOPклаузата се изпълнява.
Надяваме се, че това отговаря на въпроса ви. Освен това обяснява защо псевдонимът работи в ORDER BY клауза.