Mysql 计数器增加时的总和记录
我正在显示一些记录,当计数器为特定记录组增加时,我需要对这些记录求和成本以获得SumCost。我将给出一个简单的SQL代码。谢谢你的帮助Mysql 计数器增加时的总和记录,mysql,Mysql,我正在显示一些记录,当计数器为特定记录组增加时,我需要对这些记录求和成本以获得SumCost。我将给出一个简单的SQL代码。谢谢你的帮助 Group| Items | Cost | SumCost| Counter ----------------------------------------- Cars | Opel | 50 | 50 | 1 Cars | Toyota| 60 | 110 | 2 Cars | KIA | 40 | 150
Group| Items | Cost | SumCost| Counter
-----------------------------------------
Cars | Opel | 50 | 50 | 1
Cars | Toyota| 60 | 110 | 2
Cars | KIA | 40 | 150 | 3
Laps | Acer | 30 | 30 | 1
Laps | Hp | 45 | 75 | 2
Laps | Compaq| 20 | 95 | 3 and so on....
我想要的是,例如,当组(Cars)显示其记录时,它应该合计每个car项目的成本,并在SumCost列中显示为sum/total。所以欧宝的总成本是50,丰田的总成本是(欧宝和丰田的成本,即50+60=110),起亚的总成本是(欧宝成本+丰田成本+起亚成本=>50+60+40=150)等等
SELECT
IF(t.counter=1, @sum:=0,null) _,
@sum:=@sum+t.cost sum,
t.*
FROM A t;
不带计数器,通过分组更改
我回顾了你的另一篇文章,发现它的答案非常有用这里,求和计算的解决方案相同:
SELECT *,
(SELECT SUM(cost) FROM sometbl counter
WHERE t.groups = counter.groups AND t.id >= counter.id) AS cost_sum
FROM sometbl t
期望的结果是什么?那么到目前为止,您为实现这一目标做了哪些工作?或者你希望人们只是从零开始为你编写代码吗?对于你所描述的内容,没有一个很好的纯SQL解决方案。@JakeGould:一个问题只能通过把它分解成碎片来解决。我从某个地方开始,我得到了一个我想要实现的想法。如果我在这个页面上显示整个问题的语法,人们将很难理解并提供解决方案,因为它的含义不清楚。@祝你好运,有人帮你做你的工作。请问,有没有其他方法代替使用sql变量?如果由于mysql在将代码转换为表视图时出错,字段/coulmns可以被操纵。我试图通过将变量从我的表中更改为列/字段来遵循您的语法。我不知道。。。可能是,但我不能在飞行中…真的,哇…更多帮助请你应该保存行之间的状态。。。总金额。。。重置总和。。。还有什么?@Akeown,我加了另一把小提琴,没有计数器,有组域。。。也许它更有用。。。