两个问题:
(1)我正在查看季度银行数据,并希望计算过去4个季度的净收入的运行总和。对于下面的A银行,2013年第一季度到2013年第四季度的净收入总和为177(2013年第四季度A银行净收入为12M)。
(2)此外,我想计算同比收入增长。对于A银行,2014年(246)的净收入为1200万,比去年同期增长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
答案 0 :(得分:0)
您必须能够正确排序 Quarter 列中的值。让我们假设您有分别获得年份和季度的YEAR()和QTR()函数。
然后,要获得前四个季度的收入总额,您可以查询:
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文档中找到了它。