昨日、これに似たものを投稿しましたが、今は私のクエリとは少し違うものをお願いします-
データベースにクエリを実行して、時間の経過とともに 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 回限りのユーザーのみを考慮し、繰り返しユーザーを考慮したくないということです。
ありがとう