2017-03-26 59 views
0

我試圖爲8個季度的工人彙總工資。如柱,有按季度SQL嵌套總工資

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名員工。 任何建議將不勝感激。

回答

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; 
+0

噢,我,我去睡覺,並發現了類似的答案...謝謝你的美好解! –

+0

我想創建一個布爾列來表明一個人已經連續兩個季度與同一僱主合作過,理想狀態是> = 3。我加入了僱主,並帶有「人員」員工證。我已經通過員工ID和YearQuarter訂購了加入。我有其他的變數,我會保留在查詢中。員工本可以在四分之一或四分之一的時間內與多個僱主合作。不關心這些情況。 –