3

こんな感じのデータがあります。簡単にするために、date「日」+数字として表示します

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

各 にいくつの ID があるかを数えたいと思いますdate。ただし、各日付には、以前のすべての日付カウントが含まれている必要があります。

つまり、ユーザーが Day3 から Day5 までの範囲を選択した場合。

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 に答える