【发布时间】:2010-10-12 11:06:04
【问题描述】:
为什么不能在 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'
【问题讨论】:
标签: mysql sql mysql-error-1054