sql >> Databasteknik >  >> RDS >> Mysql

SUM() fungerar inte i MySQL :SUM() med DISTINCT

Du anger DISTINCT IN sum( rating.rating) as total_rating, det är därför resultatet (12=17-5 ), eftersom det bara kommer att inkludera 5 en gång när summan beräknas.

 select review.comments, review.user_id, count(distinct rating.id) as rating_count,
    sum( rating.rating) as total_rating from users 
    left join review on users.id = review.user_id and review.shop_id='1' 
    left join rating on users.id = rating.user_id and rating.shop_id='1' 
    where review.shop_id='1' or rating.shop_id='1' 
    group by users.id, review.user_id, rating.user_id, review.id

Här är SQLFiddle

Exempelutdata: Hoppas detta hjälper



  1. Spring JDBC-stöd och stor datauppsättning

  2. Konvertera sträng/varchar till datum mellan MySQL-tabeller

  3. SHOW TABLES-sats med flera LIKE-värden

  4. Hämta data med Jquery, AJAX och PHP från en MySQL-databas