昨日、これに似たものを投稿しましたが、今は私のクエリとは少し違うものをお願いします-
データベースにクエリを実行して、時間の経過とともに Web サイトにアクセスしたワンタイム ユーザーの数を取得しようとしています。データは次のようになります。
Day | UserID
1 | A
1 | B
2 | B
3 | A
4 | B
4 | C
5 | D
クエリの結果をこのようにしたい
Time Span | COUNT(DISTINCT UserID)
Day 1 to Day 1 | 2
Day 1 to Day 2 | 1
Day 1 to Day 3 | 0
Day 1 to Day 4 | 1
Day 1 to Day 5 | 2
結果は 2,1,0,1,2 です。これは、これらの日の終わりに、1 回訪問したユーザーが X 人いるためです。たとえば、5 日目の終わりに、ユーザー c と d はそれぞれ 1 回しかアクセスしていません。
次のようなクエリを探していると思います。
select d.day, (select count(distinct userid) from visits where day<=d.day)
from (select distinct day from visits) d
上記のクエリと私が探しているものとの違いは、この新しいクエリでは、各期間に 1 回限りのユーザーのみを考慮し、繰り返しユーザーを考慮したくないということです。
ありがとう