Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SQL - Condição WHERE em SUM()


Isso pode ser feito com uma cláusula 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:Adicionado onde colocar ORDER BY demonstração

O otimizador de consulta também não deve calcular a média várias vezes, portanto, isso não deve ser uma preocupação aqui.

Como foi mencionado na resposta do @jagra, você deve poder usar AVG() em vez de SUM() / COUNT()