Cómo usar una columna temporal en la cláusula where

¿Por qué no puedo usar una columna temporal en la cláusula where?

Por ejemplo, esta 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 muestra dos columnas, una llamadaproduct_brand y uno llamadobrand_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 solo sibrand_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' 

Respuestas a la pregunta(5)

Su respuesta a la pregunta