首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用上年度利润相加计算连续年度利润

用上年度利润相加计算连续年度利润
EN

Stack Overflow用户
提问于 2019-06-28 13:31:54
回答 3查看 39关注 0票数 0

示例数据和预期结果如下图所示:

我们需要将上一年的利润与连续的一年相加,并以图像中给出的格式显示数据(图像中还提供了样本数据)。

请帮助我使用SQL查询来解决这个问题。

EN

回答 3

Stack Overflow用户

发布于 2019-06-28 14:21:26

您也可以使用窗口函数来编写此代码。

代码语言:javascript
复制
SELECT
    Year,
    SUM(Profit) OVER(ORDER BY Year) AS Total_Profit
FROM your_table
ORDER BY Year
票数 1
EN

Stack Overflow用户

发布于 2019-06-28 14:05:32

这可能是世界上最简单的递归CTE,你可以用谷歌搜索一下。但事实是:

代码语言:javascript
复制
declare @years table(y int, p int)
insert @years values (2015,1000),(2016,2000),(2017,500),(2018,1000)
; with cumulative as
(
    select top 1 * from @years order by y
    union all
    select y.y, y.p+c.p
    from @years y
    join cumulative c on y.y=c.y+1
)
select * from cumulative

结果:

代码语言:javascript
复制
y       p
2015    1000
2016    3000
2017    3500
2018    4500
票数 0
EN

Stack Overflow用户

发布于 2019-06-28 14:27:33

使用分区求和:

代码语言:javascript
复制
WITH V1 AS (
    SELECT 2015 AS YEAR, 1000 AS PROFIT FROM DUAL
    UNION ALL SELECT 2016 AS YEAR, 2000 AS PROFIT FROM DUAL
    UNION ALL SELECT 2017 AS YEAR, 500 AS PROFIT FROM DUAL
    UNION ALL SELECT 2018 AS YEAR, 1000 AS PROFIT FROM DUAL
)
SELECT 
    V1.YEAR
    , PROFIT --- You can comment it if not needed
    , SUM(PROFIT) OVER (PARTITION BY 1 ORDER BY YEAR RANGE UNBOUNDED PRECEDING) AS PROFIT_CUM
FROM V1;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56801388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档