sql >> データベース >  >> RDS >> Mysql

MySQLでSUM()が機能しない:DISTINCTを使用したSUM()

    DISTINCTを入れます IN sum( rating.rating) as total_rating, そのため、結果( 12 =17-5 )、合計の計算中に5が1回だけ含まれるため。

     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
    

    こちらがSQLFiddle です。

    出力例: これがお役に立てば幸いです



    1. mysql、特にINTdataTypeにNULLを挿入する方法

    2. postgreSQLをpsycopg2に接続できません

    3. HaversineとLaravel

    4. 集計なしで行と列を転置する