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

SUM() virker ikke i MySQL :SUM() med DISTINCT

Du indsætter DISTINCT IN sum( rating.rating) as total_rating, det er derfor resultatet(12=17-5 ), da den kun vil inkludere 5 én gang, mens summen beregnes.

 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

Her er SQLFiddle

Eksempeloutput: Håber dette hjælper



  1. Foretrukken metode til lagring af adgangskoder i databasen

  2. Vælg kun dagens (siden midnat) tidsstempler

  3. MySQL-ydelse:MySQL vs. MariaDB

  4. Hvad er MAX-tallet, hvis jeg gemmer int(255) i MySQL?