Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

SQL - Điều kiện WHERE trên SUM ()

Điều này có thể được thực hiện với điều khoản 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

Lưu ý:Đã thêm nơi đặt ORDER BY tuyên bố

Trình tối ưu hóa truy vấn cũng không nên tính Giá trị trung bình nhiều lần, vì vậy điều đó không phải là vấn đề đáng lo ngại ở đây.

Như đã được đề cập trong câu trả lời của @ jagra, bạn sẽ có thể sử dụng AVG() thay vì 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. Mã hóa chuỗi thử thách trong Python

  2. Lấy các giá trị và số lượng duy nhất cho mỗi

  3. Lọc tìm kiếm với PHP / MySQL

  4. Mysql cải thiện tốc độ CHỌN

  5. Làm thế nào để làm tròn xuống số nguyên gần nhất trong MySQL?