Položíte dvě otázky:
1.
Proč nemohu odkazovat na alias nákladů SELECT v klauzuli WHERE?
2.
Ale proč seřadit podle ceny; je povoleno?
Manuál má odpověď pro oba zde:
Název výstupního sloupce lze použít jako odkaz na hodnotu sloupce v
ORDER BYaGROUP BYklauzule, ale ne vWHEREneboHAVINGdoložky; tam musíte místo toho napsat výraz.
Je definován standardem SQL a důvodem je sekvence událostí v SELECT dotaz. V té době WHERE jsou použity klauzule, výstupní sloupce v SELECT seznam ještě nebyl spočítán. Ale pokud jde o ORDER BY , výstupní sloupce jsou snadno dostupné.
Takže i když je to zpočátku nepohodlné a matoucí, stále to dává smysl.
Související:
- Podmínka počtu PostgreSQL Where
- Nejlepší způsob, jak získat počet výsledků před použitím LIMIT