3

我有数据,看起来像这样。为简单起见,我将显示date为 'Day' + number

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 个查询。

4

2 回答 2

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
于 2013-01-10T01:10:43.283 回答
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
于 2013-01-10T14:31:39.157 回答