Mysql
 sql >> Base de données >  >> RDS >> Mysql

SUM() ne fonctionne pas dans MySQL :SUM() avec DISTINCT

Vous mettez DISTINCT EN sum( rating.rating) as total_rating, c'est pourquoi le résultat (12=17-5 ), puisqu'il n'inclura 5 qu'une seule fois lors du calcul de la somme.

 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

Voici SQLFiddle

Exemple de sortie : J'espère que cela vous aidera