当前位置:  开发笔记 > 编程语言 > 正文

如何在where子句中使用临时列

如何解决《如何在where子句中使用临时列》经验,为你挑选了1个好方法。

为什么我不能在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' 

derobert.. 14

HAVING改为使用:

Select
    product_brand,
    (CASE WHEN COUNT(product_brand)>50 THEN 1 ELSE 0 END) AS brand_count
  FROM products
  GROUP BY product_brand
  HAVING brand_count = 1

WHERE被评估GROUP BY.HAVING经过评估.



1> derobert..:

HAVING改为使用:

Select
    product_brand,
    (CASE WHEN COUNT(product_brand)>50 THEN 1 ELSE 0 END) AS brand_count
  FROM products
  GROUP BY product_brand
  HAVING brand_count = 1

WHERE被评估GROUP BY.HAVING经过评估.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有