Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL - WHERE-Bedingung für SUM()

Dies kann mit einer HAVING-Klausel erreicht werden:

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

Hinweis:Platz für ORDER BY hinzugefügt Erklärung

Der Abfrageoptimierer sollte den Durchschnitt auch nicht mehrfach berechnen, also sollte das hier kein Problem sein.

Wie in der Antwort von @jagra erwähnt, sollten Sie in der Lage sein, AVG() zu verwenden statt SUM() / COUNT()