为什么不能在 where 子句中使用临时列?
例如,这个查询:
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
这会产生两列,一列称为product_brand
,一列称为brand_count
。brand_count
是动态创建的,始终为 1 或 0,具体取决于是否有 50 个或具有该品牌的产品。
所有这一切对我来说都很有意义,除了我不能只brand_count = 1
在下面的查询中选择:
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
这给了我这个错误:
#1054 - Unknown column 'brand_count' in 'where clause'