Mysql
 sql >> Database >  >> RDS >> Mysql

SQL - Condizione WHERE su SUM()

Questo può essere ottenuto con una clausola 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

Nota:aggiunto dove inserire ORDER BY dichiarazione

Anche Query Optimizer non dovrebbe calcolare la media più volte, quindi non dovrebbe essere un problema qui.

Come accennato nella risposta di @jagra, dovresti essere in grado di utilizzare AVG() invece di SUM() / COUNT()