O
HAVING cláusula é avaliada antes do SELECT - então o servidor ainda não sabe sobre esse alias. -
Primeiro, o produto de todas as tabelas noFROMcláusula é formada.
-
OWHEREA cláusula é então avaliada para eliminar linhas que não satisfaçam a search_condition.
-
Em seguida, as linhas são agrupadas usando as colunas noGROUP BYcláusula.
-
Então, os grupos que não satisfazem asearch_conditionnoHAVINGcláusula são eliminadas.
-
Em seguida, as expressões noSELECTlista de destino da instrução são avaliadas.
-
Se oDISTINCTpalavra-chave presente na cláusula select, as linhas duplicadas agora são eliminadas.
-
AUNIONé obtido após cada sub-seleção ser avaliada.
-
Finalmente, as linhas resultantes são classificadas de acordo com as colunas especificadas noORDER BYcláusula.
-
TOPcláusula é executada.
espero que isso responda sua pergunta. Além disso, explica por que o alias funciona em
ORDER BY cláusula.