2013-01-10 4 views
3

데이터가 있습니다. 다음과 같습니다. 간단하게하기 위해, 나는 '일'+ 번호 I 각 date에 얼마나 많은 ID를 계산하고 싶은범위 내의 Sql SUM

Date  ID 
----------- 
Day1  A 
Day1  B 
Day1  C 
Day2  A 
Day2  A 
Day3  A 
Day4  B 
Day5  A 

date 표시됩니다. 그러나 각 날짜에는 모든 이전 날짜 수가 포함되어야합니다.

사용자가 Day3에서 Day5까지 범위를 선택하면 의미가 나타납니다.

Date Count 
Day3 Day1+Day2+Day3 
Day4 Day1+Day2+Day3+Day4 
Day5 Day1+Day2+Day3+Day4+Day5 

내가 생각할 수있는 것은 'UNION'을 사용하여 매일 3 개의 쿼리를 추가하는 것입니다.

답변

3

오라클이 지원하는 누적 합계를 찾고 있습니다.

이 시도 : 밖으로

select date, sum(daycnt) over (order by date) 
from (select date, count(*) as daycnt 
     from t 
     where date between DAY_START and DAY_END 
     group by t 
    ) t 
0

확인이 물건

select Dt, count(*) 
from 
(
select t2.Date Dt 
from t t1, (select Date from t group by Date) t2 
where t1.Date < t2.Date 
) 
group by Dt