gpt4 book ai didi

mysql - mysql中如何按组查找累计值?

转载 作者:行者123 更新时间:2023-11-29 10:24:58 26 4
gpt4 key购买 nike

我有下表

   id_val date_val    volume_val
1 26-Jan-18 100
1 25-Jan-18 200
1 24-Jan-18 300
1 23-Jan-18 150
2 26-Jan-18 250
2 25-Jan-18 350
2 24-Jan-18 400
3 23-Jan-18 500

我需要通过 id 估计累积体积。这就是我想要得到的

id_val date_val    volume_val     cumulative_volume_val
1 26-Jan-18 100 100
1 25-Jan-18 200 300
1 24-Jan-18 300 600
1 23-Jan-18 150 750
2 26-Jan-18 250 250
2 25-Jan-18 350 600
2 24-Jan-18 400 1000
3 23-Jan-18 500 500

这是我尝试过的方法,但不起作用。它总结了一切,并且不按组划分。我该如何改进它?

set @csum := 0;  

select id_val, date_val,
(@csum := @csum + volume_val) as cumulative_volume
from temp
group by id_val, date_val
order by id_val, date_val desc

最佳答案

这是我根据类似问题的答案改编的解决方案:Does mysql have the equivalent of Oracle's "analytic functions"?

select id_val, date_val,   
(case when @id_val != id_val then @sum := volume_val else @sum := @sum + volume_val end) as cumulative_volume,
(case when @id_val != id_val then @id_val := id_val else @id_val end) as _
FROM (SELECT * FROM temp ORDER BY id_val, date_val desc) z
JOIN (SELECT @sum := 0) s
JOIN (SELECT @idval := -1) i

关于mysql - mysql中如何按组查找累计值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48483103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com