需要查询以选择图片中提到的“运行总额”
2017年末总数加上每个月的新数字应加到以前的总数。
godkid5201314 回答:SQL的运行总计,包括去年年底的总计
下面的脚本将适用于MSSQL,您也可以对其他数据库使用相同的逻辑-
WITH your_table(year,month,partersgrowth)
AS
(
SELECT '2019','jan',100 UNION ALL
SELECT '2019','feb',300 UNION ALL
SELECT '2019','mar',400 UNION ALL
SELECT '2019','apr',500 UNION ALL
SELECT '2018','Dec',200
)
SELECT A.year,A.month,A.partersgrowth,(
SELECT SUM(B.partersgrowth)
FROM your_table B
WHERE CAST(B.Year +'-'+B.month+'-01' AS DATE)
<= CAST(A.Year +'-'+A.month+'-01' AS DATE)
) Running_Total
FROM your_table A
ORDER BY CAST(A.Year +'-'+A.month+'-01' AS DATE)
,
使用@mkRabbani解决方案..您可以像这样简化它:
;WITH your_table(year,200
)
select *,sum(partersgrowth) over ( order by [year],[month]) as running_total
from your_table
编辑:正如下面的评论所指出的..您要在总和部分中按正确的日期进行排序(我将按年份排序,然后按月份编号而不是月份名称)
,如果使用MSSQL,则可以运行以下代码
with cte as (
select t.*,lag(partersGrowth) over(partition by year order by month asc rows ROWS UNBOUNDED PRECEDING) prevTotal
from Table )
select years,partersGrowth,prevTotal || '+' partersGrowth as "Need Running Total"
from cte