¿Por qué no puedo usar una columna temporal en la cláusula where?Cómo usar una columna temporal en la cláusula where
Por ejemplo, la siguiente consulta:
Select
product_brand,
(CASE WHEN COUNT(product_brand)>50 THEN 1 ELSE 0 END) AS brand_count
FROM
products
WHERE
1
GROUP BY
product_brand
Esto nos lleva a dos columnas, una llamada product_brand
y uno llamado brand_count
. brand_count
se crea sobre la marcha y siempre es 1 o 0 dependiendo de si hay 50 o productos con esa marca.
Todo esto tiene sentido para mí, excepto que no puedo seleccionar sólo si brand_count = 1
como en esta consulta a continuación:
Select
product_brand,
(CASE WHEN COUNT(product_brand)>50 THEN 1 ELSE 0 END) AS brand_count
FROM
products
WHERE
brand_count = 1
GROUP BY
product_brand
que me da este error:
#1054 - Unknown column 'brand_count' in 'where clause'
Estás equivocado. No funciona en TENER también. – thorn
@thorn: siempre funcionó para mí en MySQL. Tal vez hay algo más incorrecto en su consulta? ¿Qué versión de MySQL está ejecutando, y tiene habilitada una de las opciones estrictas? – derobert
Lo siento. Confundí MySQL con MS SQL Server. – thorn