Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SUM() nie działa w MySQL :SUM() z DISTINCT

Wstawiasz DISTINCT IN sum( rating.rating) as total_rating, dlatego wynik (12=17-5 ), ponieważ będzie zawierać 5 tylko raz podczas obliczania sumy.

 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

Oto SQLFiddle

Przykładowe dane wyjściowe : Mam nadzieję, że to pomoże



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sumuj wartości tablicy wielowymiarowej według klucza bez pętli

  2. mysqldbcompare odmowa dostępu, ale polecenie mysql działa

  3. Wydajny sposób na symulację pełnego sprzężenia zewnętrznego w MySQL?

  4. WSTAW do ciągu DB DateTime

  5. Jak reprezentować dane osi X i Y w tabeli SQL?