2013-01-10 83 views
3

我有數據,看起來像這樣。爲簡單起見,我將顯示date爲「日」 +號Sql SUM範圍

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

我想指望有多少ID是在每個date。但是,每個日期都需要包含所有以前的日期計數。

含義,如果用戶選擇範圍從第3天到第5天。

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

我能想到的就是使用'UNION'爲每天添加3個查詢。

回答

3

您正在尋找Oracle支持的累計總和。

試試這個:

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