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
これにより、 と呼ばれる列とと呼ばれる列の 2 つの列が表示されbrand_count
ます。brand_count
その場で作成され、そのブランドの製品が 50 個あるかどうかに応じて、常に 1 または 0 になります。
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'