数据:
NAME AGE SAL MONTH
A 21 100 JAN
B 22 150 FEB
C 21 200 SEP
D 22 100 OCT
EMP 21 150 DEC
所需输出::
1>正常和
NAME AGE SAL SUM
A 21 100 700
B 22 150 700
C 21 200 700
D 22 100 700
EMP 21 150 700
2>运行总和
NAME AGE SAL RUNNING_SUM
A 21 100 100
B 22 150 250
C 21 200 450
D 22 100 550
EMP 21 150 700
3>季度总
NAME AGE SAL MONTH SUM
A 21 100 JAN 250
B 22 150 FEB 250
C 21 200 SEP 200
D 22 100 OCT 250
EMP 21 150 DEC 250
有人能帮我编写代码以实现上述结果吗。我也会很高兴的。
所有结果都可以通过使用SUM
聚合函数和窗口函数来实现。
--Normal Sum
SELECT s.*, SUM (sal) OVER () AS SUM
FROM sum_data s;
--Running Sum
SELECT s.*, SUM (sal) OVER (ORDER BY name) AS SUM
FROM sum_data s;
--Quarterly Sum
SELECT s.*,
SUM (sal)
OVER (
PARTITION BY TO_CHAR (TO_DATE ('2022-' || s.month || '-1', 'YYYY-MON-DD'), 'Q')) AS quarterly_SUM
FROM sum_data s;