2016-10-28 127 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中(单独)并将其放入总列中。

相关问题