Mysql
 sql >> Base de données >  >> RDS >> Mysql

SQL - Condition WHERE sur SOMME()

Cela peut être accompli avec une clause HAVING :

SELECT e.*, rt.review_id, (SUM(vt.percent) / COUNT(vt.percent)) AS rating 
FROM catalog_product_entity AS e 
INNER JOIN rating_option_vote AS vt ON e.review_id = vt.review_id 
GROUP BY vt.review_id
HAVING (SUM(vt.percent) / COUNT(vt.percent)) >= 0
ORDER BY (SUM(vt.percent) / COUNT(vt.percent)) ASC

Remarque :Ajout de l'emplacement de ORDER BY déclaration

L'optimiseur de requête ne doit pas non plus calculer la moyenne plusieurs fois, donc cela ne devrait pas être un problème ici.

Comme mentionné dans la réponse de @ jagra, vous devriez pouvoir utiliser AVG() au lieu de SUM() / COUNT()