Dlaczego musisz umieszczać kolumny, które sam tworzysz (na przykład "wybierz 1 jako liczbę") po MIEJĄC, a nie GDZIE w MySQL?
WHERE jest stosowany przed GROUP BY , HAVING jest stosowany po (i może filtrować według agregatów).
Ogólnie rzecz biorąc, w żadnej z tych klauzul nie można odwoływać się do aliasów, ale w MySQL umożliwia odwoływanie się do SELECT aliasy poziomów w GROUP BY , ORDER BY i HAVING .
I czy są jakieś wady zamiast robienia "GDZIE 1" (pisanie całej definicji zamiast nazwy kolumny)
Jeśli wyliczone wyrażenie nie zawiera żadnych agregatów, umieść je w WHERE klauzula będzie najprawdopodobniej bardziej skuteczna.