SQL은

2016-07-23 7 views
0

내가 다시 21 일간 다음과 같은 방법으로 데이터를 집계 할 수있는 쿼리를 찾고 있어요 (윈도우 기능을 사용하지 않고) 창 집계를 슬라이딩 : 내 표는 다음과 같은 열이 있습니다, 계정 아이디, 날짜를SQL은

을 측정

각 계정에 대해 지난 21 일간의 합계 (측정) 날짜가 필요합니다. 윈도우/분석 함수가없는 순수한 SQL에서 어떻게 할 수 있습니까? (분석 함수에서 지원하지 않는 BI 제품 내에 SQL을 작성합니다)

+0

샘플 데이터와 원하는 결과를 제공 할 수 있습니까? 21 일 전부터 뭐라구? –

답변

1

오히려 비효율적 인 방법은 상관 하위 쿼리를 사용합니다. 이전 이십일일 각 항목에 대해 원하는 경우 :

select t.*, 
     (select sum(t2.measure) 
     from t t2 
     where t2.accountid = t.accountid and 
       t2.date > t.date - interval '21' day 
     ) as sum21 
from t; 

없음 해당 날짜 기능 때문에 특정 데이터베이스가 이십일일 뺀 다른 방법이있을 수 있습니다, 데이터베이스에 의해 다릅니다.