2016-10-28 126 views
1

sql查詢總結ID相同,但不同的值??的.... 我試圖計算相同ID的總和......以下是我的表sql查詢總和相同的id,但不同的值?

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

我想輸出像

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

什麼是價值150,000? – Jens

回答

1

你可以做這樣的:

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

+0

選擇buyer_id,sum(prod_barter_val)作爲總數 from add_to_cart group by buyer_id;它給出了錯誤的結果 –

+0

Id 2給出51和Id 3給出152 –

+0

@ S.Patil有趣。在你的問題中,這些是來自DB的原始值(數字)嗎?我認爲你的數字分組有點不合適。 – Vasan

1

你幾乎沒有,只是改變了SQL statment(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都加入到一行中。

如果沒有SUM,您最終只能得到barter_value列中的一個隨機值,但使用SUM時,它會將所有行添加到ID中(單獨)並將其放入總列中。

相關問題