sql >> Databáze >  >> RDS >> Sqlserver

Proč nemohu použít alias ve sloupci count(*) a odkazovat na něj v klauzuli have?

Podívejte se na dokument, na který odkazuje CodeByMoonlight v odpovědi na vaši nedávnou otázku.

Klauzule HAVING je vyhodnocena před SELECT - takže server o tomto aliasu ještě neví.

  1. Nejprve součin všech tabulek v od se tvoří klauzule.
  2. kde klauzule je poté vyhodnocena, aby se odstranily řádky, které nesplňují podmínku vyhledávání.
  3. Řádky jsou dále seskupeny pomocí sloupců v seskupit podle doložka.
  4. Potom skupiny, které nesplňují search_condition v klauzuli Having jsou odstraněny.
  5. Dále výrazy v vybrat klauzule cílový seznam je vyhodnocen.
  6. Pokud se rozlišuje klíčové slovo v klauzuli select, duplicitní řádky jsou nyní odstraněny.
  7. Unie se bere po vyhodnocení každého dílčího výběru.
  8. Výsledné řádky jsou nakonec seřazeny podle sloupců zadaných v pořadí podle doložka.


  1. uložit výsledek postgresql do proměnné bash

  2. Co to znamená „normalizovat“ databázi?

  3. Jak funguje funkce RPAD() v MySQL

  4. Jak protokolovat dotazy v PostgreSQL