简体   繁体   English

如何按组获得累积金额

[英]How to get cumulative sum by group

Here is desired result : 这是理想的结果:

在此输入图像描述

At ID=14, I need to reset cum value add with new cum_value . 在ID = 14时,我需要使用新的cum_value重置cum_value

SQL : (fiddle : http://sqlfiddle.com/#!6/62f01/14 ) SQL :(小提琴: http ://sqlfiddle.com/#!6/ 62f01/14

You were not so far, but I've try with less complicated queries : 你不是那么远,但我尝试了不那么复杂的查询:

DECLARE @t table(
        id int
        )

INSERT  INTO @t (id)
VALUES  (0),(1),(2),(3),(4),(5),(6),
        (7),(8),(9),(10),(11),(12),(13),
        (14),(15),(16),(17),(18),(19),
        (20),(21),(22),(23),(24),(99);

SELECT  *
        ,SUM(id)
         OVER(ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Cum_STEPID
FROM    @t
WHERE   id < 14
UNION
SELECT  *
        ,SUM(CASE WHEN id = 14 THEN 91000 ELSE id END)
         OVER(ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Cum_STEPID
FROM    @t
WHERE   id >= 14

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM