SQL嵌套总计按季度计算

时间:2017-03-26 11:02:25

标签: sql postgresql group-by nested aggregate-functions

我试图将工人的工资总计为8个季度。作为列,有

employee id
quarter (1 digit int)
year (4 digit int)
quarterly_wage
year_quarter (string i created from quarter and year)

我想每行都有

employee id, year_quarter, 8 quarters of wages

如, 2名员工,一名从2010年第1季开始,第二名从2010年第4季开始。数据来自2010Q1至2014Q4。

Employ1 2010Q1 SumOfWages2010Q1_2012Q4
Employ1 2010Q2 SumOfWages2012Q2_2013Q1
Employ1 2010Q3 SumOfWages2012Q2_2013Q2
Employ1 2010Q4 SumOfWages2012Q2_2013Q3
Employ2 2010Q4 SumOfWages2010Q4_2012Q3
etc...
这将是15年,1000名员工。 任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

假设您拥有所有员工的完整数据(即没有差距),您可以这样做:

select empid, year, quarter, quarterly_wage
       sum(quarterly_wage) over (partition by emp_id
                                 order by year, quarter
                                 rows between current row and 7 following
                                ) as wages_8quarters
from t;