sql >> Base de Datos >  >> RDS >> Mysql

SQL - DONDE Condición en SUM()

Esto se puede lograr con una 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:Se agregó dónde colocar ORDER BY declaración

El optimizador de consultas tampoco debería calcular el Promedio varias veces, por lo que eso no debería ser una preocupación aquí.

Como se mencionó en la respuesta de @jagra, debería poder usar AVG() en lugar de SUM() / COUNT()