¿Por qué necesita colocar columnas que usted mismo crea (por ejemplo, "seleccione 1 como número") después de HAVING y no DÓNDE en MySQL?
WHERE
se aplica antes de GROUP BY
, HAVING
se aplica después (y puede filtrar en agregados).
En general, no puede hacer referencia a alias en ninguna de estas cláusulas, pero MySQL
permite hacer referencia a SELECT
alias de nivel en GROUP BY
, ORDER BY
y HAVING
.
¿Y hay alguna desventaja en lugar de hacer "DONDE 1" (escribir la definición completa en lugar de un nombre de columna)
Si su expresión calculada no contiene ningún agregado, colóquelo en WHERE
Lo más probable es que la cláusula sea más eficiente.