2016-10-28 26 views
1

SQLクエリは、私が欲しい、次は私のテーブル同じIDだが異なる値を合計するsqlクエリ?

id  barter_value 
2   50,000 
2   1,50,000 
3   47,000 
3   55,000 
3   50,00,000 

です...私は同じidの合計を計算しようとしています ....同じidが異なる値??の合計に出力

id  barter_value 
2   2,00,000 
3   51,00,2000 


select a.buyer_id, 
     a.prod_barter_val 
     from add_to_cart as a 
     join(select buyer_id, 
      sum(prod_barter_val) as total 
      from add_to_cart group by buyer_id) as b 
      on a.buyer_id = b.buyer_id; 
のような
+0

値は1,500,000ですか? – Jens

答えて

1

あなただけ好き行うことができます。

select buyer_id, sum(prod_barter_val) from add_to_cart group by buyer_id

+0

select buyer_id、sum(prod_barter_val)as合計 からadd_to_cart グループ別buyer_id;それは間違った結果を与える –

+0

Id 2は51を与え、Id 3は152 –

+0

@Satil Interestingを与える。彼らはあなたの質問のDBから生の値(数字)ですか?私はあなたの桁のグループ化が少しだと思います。 – Vasan

1

あなたはほとんどそこにいるだけのSQLなステートメントを変更(b.total):

select buyer_id, 
    sum(prod_barter_val) as total 
    from add_to_cart 
    group by buyer_id 
+0

ここでJOINと暗黙のテーブルが必要なのはなぜですか? – Vasan

+0

実際はそうではありません。私はそれを削除しました。 –

+0

このアップデートされたソリューションにも問題があります。 SUMのような集計関数はGROUP BYなしでは機能しません。 – Vasan

1
SELECT id, SUM(barter_value) as 'total' FROM table GROUP BY id 

これは何: は、すべてのIDのテーブルから物々交換値を選択します。次に、GROUP BYが有効になり、等しいすべてのIDが1つの行に結合されます。

SUMがなければ、barter_value列の値はランダムになりますが、SUMを使用すると、すべての行がIDのために(別々に)合計され、合計の列に追加されます。

関連する問題