2017-03-26 4 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과 4 데이터에서입니다 2,010 분기에 두 번째 선발 등판 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

부울 컬럼을 만들어 적어도 2 분기 연속 (이상적으로 => 3)에 동일한 고용주와 일했음을 보여주고 싶습니다. 나는 "직원"직원 ID를 가진 고용주들과 합류했다. 저는 직원 ID 및 YearQuarter로 가입을 주문했습니다. 내가 쿼리에서 보유 할 다른 변수가 있습니다. 직원은 1/4 분기 또는 여러 분기 동안 여러 고용주와 함께 일할 수있었습니다. 그 사건에 대해 걱정하지 마라. –