sql >> Database teknologi >  >> RDS >> Mysql

SQL - WHERE-tilstand på SUM()

Dette kan opnås med en HAVING-sætning:

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

Bemærk:Tilføjet hvor ORDER BY skal placeres erklæring

Forespørgselsoptimeringsværktøjet bør heller ikke beregne gennemsnittet flere gange, så det burde ikke være et problem her.

Som nævnt i @jagras svar, burde du kunne bruge AVG() i stedet for SUM() / COUNT()



  1. MySQL, som er mere effektiv longtext, tekst eller blob? Forbedring af skæreffektiviteten

  2. SQL-forespørgsel for at finde N. højeste løn fra en løntabel

  3. Hibernate OnDelete Cascade virker ikke for MySql, men virker på postgres og Ms-Sql

  4. psql:kunne ikke oprette forbindelse til serveren:Ingen sådan fil eller mappe (Mac OS X)