Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL - WHERE условие за SUM()

Това може да се постигне с клауза 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

Забележка:Добавено е къде да поставите ORDER BY изявление

Оптимизаторът на заявки също не трябва да изчислява средната стойност няколко пъти, така че това не трябва да е проблем тук.

Както беше споменато в отговора на @jagra, трябва да можете да използвате AVG() вместо SUM() / COUNT()



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL функция за изчисляване на разстоянието между две географски ширини и дължини

  2. UNIX_TIMESTAMP() Примери – MySQL

  3. ИЗБЕРЕТЕ ред по DATEPART()

  4. Laravel има много релации, брой харесвания и коментари за публикация

  5. Как да промените колона и да промените стойността по подразбиране?