Tại sao tôi không thể sử dụng cột tạm thời trong mệnh đề where?Cách sử dụng cột tạm thời trong mệnh đề where
Ví dụ, truy vấn này:
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
này sẽ trả về hai cột, một gọi là product_brand
và một gọi là brand_count
. brand_count
được tạo khi đang bay và luôn luôn là 1 hoặc 0 tùy thuộc vào việc có hay không có 50 sản phẩm với thương hiệu đó.
Tất cả điều này có ý nghĩa với tôi, ngoại trừ việc tôi không thể chọn chỉ khi brand_count = 1
như trong truy vấn này dưới đây:
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
mà mang lại cho tôi lỗi này:
#1054 - Unknown column 'brand_count' in 'where clause'
Bạn đã sai. Nó không hoạt động trong HAVING. – thorn
@thorn: nó luôn làm việc cho tôi trong MySQL. Có thể có điều gì đó sai trong truy vấn của bạn? Bạn đang chạy phiên bản MySQL nào và bạn có bật một trong các tùy chọn nghiêm ngặt không? – derobert
Xin lỗi. Tôi đã nhầm lẫn MySQL với MS SQL Server. – thorn