Mysql sql查询到相同id但不同值的总和?
sql查询到相同id但不同值之和??。。。。 我正在尝试计算相同id的和…下面是我的表Mysql sql查询到相同id但不同值的总和?,mysql,sql,Mysql,Sql,sql查询到相同id但不同值之和??。。。。 我正在尝试计算相同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
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;
你可以这样做:
按买家id从添加到购物车组中选择买家id,sum(prod\u barter\u val)
您就快到了,只需更改sql语句(b.total
):
它的作用是:
从表中选择所有ID和易货值。然后,GROUP BY生效,所有相等的ID都合并到一行中
如果没有求和,则在易货价值列中只会有一个随机值,但使用求和,它会将ID的所有行(分别)相加,并将其放入总计列。什么是值1,50000?为什么这里需要联接和隐式表?事实上不是这样。我已将其删除。此更新的解决方案也有问题。如果没有GROUP BY,SUM等聚合函数将无法工作。请选择buyer_id,SUM(prod_barter_val)作为根据buyer_id添加到购物车组的合计;它给出了错误的结果。Id 2给出了51,Id 3给出了51152@S.Patil有趣。这些是您问题中DB的原始值(数字)吗?我觉得你的数字分组有点不对。它是50+1和55+50+47。。。你的易货格式是什么?什么是“,”?为什么不将其存储为int 50000,150000?SUM可以使用有效的数字,如果您将其存储为int/FLOAT,则此代码将非常有效。
select buyer_id,
sum(prod_barter_val) as total
from add_to_cart
group by buyer_id
SELECT id, SUM(barter_value) as 'total' FROM table GROUP BY id