Pourquoi ne puis-je pas utiliser une colonne temporaire dans la clause where?Comment utiliser une colonne temp dans la clause where
Par exemple, cette requête:
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
Cela fait apparaître deux colonnes, l'une appelée product_brand
et un appelé brand_count
. brand_count
est créé à la volée et est toujours 1 ou 0 selon qu'il y a 50 ou des produits avec cette marque.
Tout cela fait sens pour moi, sauf que je ne peux pas sélectionner uniquement si brand_count = 1
comme dans cette requête ci-dessous:
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
qui me donne cette erreur:
#1054 - Unknown column 'brand_count' in 'where clause'
Vous avez tort. Cela ne fonctionne pas en ayant aussi. – thorn
@thorn: ça a toujours marché pour moi en MySQL. Peut-être qu'il y a quelque chose d'autre qui ne va pas dans votre requête? Quelle version de MySQL utilisez-vous, et avez-vous l'une des options strictes activées? – derobert
Désolé. J'ai confondu MySQL avec MS SQL Server. – thorn