Cita: porque los alias no intervienen en el problema. Son nada más que suplantadores de nombre de columna (La única singularidad del caso es que el WHERE no los reconoce como nombres de columna, y tampoco se puede hacer lo mismo con el HAVING o usarlos para el GROUP BY si están en una función agregada, a menos que sean de una subconsulta).
Una pequeña aclaración:
Si se hace uso de having, si es posible usar los alias para las respectivas comparaciones. Una consulta de tipo:
Si funciona. Lo que no se muy bien, es en rendimiento que tanto se diferencia el having del where.
Un saludo