변수 계산에 문제가 있습니다. ID, 날짜 및 월급이있는 테이블이 있다고 상상해보십시오. 그리고 지금 나의 임무는 각 날짜에 대해 지난 6 개월 동안 평균 급여를 알아 보는 것입니다. Cartesian 제품 대신이 값을 얻는 다른 가능성이 있습니까?지난 6 개월 동안 평균치를 얻는 방법
내 제안 해상도 :
select ID, Date, AVG(Salary2)
from
(
select tab1.ID as ID, tab1.Date as Date, tab2.Date as Date2, tab2.Salary as Salary2
from table tab1
**JOIN**
(select ID, Date, Salary from table) tab2
on tab1.ID = tab2.ID
and tab1.Date >= tab2.Date
and add_months(tab2.Date, 5) >= tab1.Date
) group by ID, Date;
나는이 방법이 효과가없는 것으로 가정합니다. 나는 큰 테이블의 관점에서 너무 많은 시간을 소비한다고 생각합니다.
다른 방법이 있습니까? 또는이 스크립트를 어떻게 최적화해야합니까?
당신이 무엇을 요구 분명하지 않다 당신에게
당신이 할 수주십시오 샘플 데이터를 제공 하시겠습니까? – Conqueror
및 예상 결과? –