在SQL中计算四个季度期间的运行总和

在SQL中计算四个季度期间的运行总和,sql,Sql,两个问题: (1) 我正在查看季度银行数据,并希望计算前4个季度的净收入。对于以下A银行,2013年第一季度至2013年第四季度的净收入合计为177(见A银行2013年第四季度1200万净收入) (2) 另外,我想计算一年比一年的收入增长。对于以下A银行,2014年1200万运行净收入(246)将比一年前增长39%(2013年1200万运行净收入为177) 非常感谢你的帮助 Quarter Bank Name Net Income 12M Net Income YoY Income Growth

两个问题:

(1) 我正在查看季度银行数据,并希望计算前4个季度的净收入。对于以下A银行,2013年第一季度至2013年第四季度的净收入合计为177(见A银行2013年第四季度1200万净收入)

(2) 另外,我想计算一年比一年的收入增长。对于以下A银行,2014年1200万运行净收入(246)将比一年前增长39%(2013年1200万运行净收入为177)

非常感谢你的帮助

Quarter Bank Name Net Income 12M Net Income YoY Income Growth
1Q2013 A 12 NA NA

2Q2013 A 56 NA NA

3Q2013 A 34 NA NA

4Q2013 A 75 177 NA

1Q2014 A 54 219 NA

2Q2014 A 123 286 NA

3Q2014 A 46 298 NA

4Q2014 A 23 246 39

1Q2015 A 72 264 21

2Q2015 A 34 175 -39

3Q2015 A 65 194 -35

1Q2013 B 32 NA NA

2Q2013 B 46 NA NA

3Q2013 B 57 NA NA

4Q2013 B 23 158 NA

1Q2014 B 56 182 NA

2Q2014 B 73 209 NA

3Q2014 B 24 176 NA

4Q2014 B 44 197 25

1Q2015 B 72 213 17

2Q2015 B 243 383 83

3Q2015 B 41 400 127

您必须能够正确排列季度列中的值。假设函数YEAR()和QTR()分别获取年份和季度

然后,要获得前4个季度的连续收入总额,您可以查询:

SELECT [Bank Name], Quarter,
        SUM([Net Income 12M]) OVER(PARTITION BY [Bank Name]
                                   ORDER BY YEAR(Quarter), QTR(Quarter)
                                   ROWS BETWEEN 3 PRECEDING AND CURRENT ROW) AS SumInc4Q
    FROM BankIncome
    ORDER BY [Bank Name], Quarter;

SQL Server 2005及更高版本中提供了使用OVER子句跟踪聚合函数的功能,我还在ORACLE 10g文档中找到了它。

SQL的哪个版本。在我看来,
Group by Grouping set
可能会实现您的目标,如果我们能够解析出年份和季度,并且您使用的RDBMS支持它的话。或者,对于您的第一部分,可以使用“汇总”。也许在第二组中使用分析
过分区
,非常感谢!QTR在我的SQL版本中不是一个函数,但MONTH提供相同的函数。有人能帮我回答这个回顾问题吗?具体来说,如果我想找到年环比变化,我想回顾一下4个季度前1200万的净收入。非常感谢。