sql >> Databáze >  >> RDS >> Mysql

SUM() nefunguje v MySQL:SUM() s DISTINCT

Vložíte DISTINCT IN sum( rating.rating) as total_rating, to je důvod, proč výsledek (12=17-5 ), protože při výpočtu součtu bude 5 obsahovat pouze jednou.

 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

Zde je SQLFiddle

Ukázkový výstup: Doufám, že to pomůže



  1. VAROVÁNÍ:Navazování připojení SSL bez ověření identity serveru se nedoporučuje

  2. Oracle – ORA-06502:PL/SQL:numerická nebo hodnotová chyba (DBMS_OUTPUT)

  3. asp.net / MySQL:Přístup odepřen uživateli ''@'localhost' (s použitím hesla:NE)

  4. Jsou příkazy CASE a DECODE ekvivalentní?