sql >> Databasteknik >  >> RDS >> Mysql

SQL - WHERE-villkor på SUM()

Detta kan åstadkommas med en HAVING-sats:

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

Obs:Lade till var du ska lägga ORDER BY uttalande

Frågeoptimeraren bör inte heller beräkna medelvärdet flera gånger, så det borde inte vara ett problem här.

Som nämndes i @jagras svar bör du kunna använda AVG() istället för SUM() / COUNT()



  1. Dynamisk kolumn i SELECT-sats postgres

  2. Ska det finnas en SQLiteOpenHelper för varje tabell i databasen?

  3. MySQL in the Cloud - Online Migration From Amazon RDS to EC2 Instance:Part One

  4. Välj poster från en vecka tidigare i mysql