Kolejność przetwarzania zapytań przez silnik bazodanowy a aliasy

Kolejność przetwarzania zapytań przez silnik bazodanowy a aliasy
Prędki_Lopez
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 253
0

Hej.
Czytając na blogach o aliasach w sql ( mysql szczególnie) często widzę powiązanie kolejności przetwarzania zapytań przez silnik bazodanowy z możlwościa używania aliasów, co jest całkiem intuicyjne.
W jednym wpisie pewna osoba opisała ...

Zauważ, że w ORDER BY, odwołuje się do aliasu wyniku działania funkcji AVG() ( umieszczona s SELECT). Jest to niejako potwierdzenie, że krok ORDER BY wykonywany jest jako ostatni – po SELECT.

Nie rozumiem teraz jaki to ma związek skoro kolejnośc wykonywania zapytań faktyczna to:

  1. FROM
  2. WHERE
  3. GROUP BY
  4. HAVING
  5. SELECT
  6. ORDER BY

W takim razie czemu alias będzie widoczny również w GROUP BY i HAVING ?
Natomiast jeśli od Selecta w dół jest widoczny, tak jak skonstruowane zapytanie to czemu w WHERE nie możemy używać?

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
0

Nie wiem jak w innych, ale w MSSQL nie można użyć aliasu w group by i having, o ile wiem postgre na to pozwala

Prędki_Lopez
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 253
0

Tak w Postgre czy MySQL można. W sumie blog, który czytam jest prowadzony przy uzyciu T-SQL z Sql Server

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.