1

ユーザーベースのコホート分析が必要です。「サインアップ」と「セッション」の 2 つのテーブルがあり、ユーザーとセッションの両方に「日付」フィールドがあります。特定の日にアカウントを作成し、セッションを作成したユーザーの数 (いくつかの空白を含む) を示す数値の表を生成するクエリを作成しようとしています。これは、彼がその日に戻ったことを示します。 、3日目、7日目、14日目。

created_at d1 d3 d7 d14 2007 年 5 月 7 日
12 * * * 2007 年 4 月 7
日 49 21 1 2 2007 年 7 月 3 日
45 30 * 3
2007 年 2 月 7 日 47 41 18 12

...この場合、2007 年 2 月 7 日にアカウントを作成した 47 人のユーザーが 3 日後に戻ってきました(d3)

単一の MySQL クエリでこれを実行できますか?

4

1 に答える 1

1

はい、できます:

Select Signups.date as created at, 
count (distinct case when datediff(sessions.date, signups.date)=1 then signups.users else null end) as d1,
count (distinct case when datediff(sessions.date, signups.date)=3 then signups.users else null end) as d3,
count (distinct case when datediff(sessions.date, signups.date)=7 then signups.users else null end) as d7,
count (distinct case when datediff(sessions.date, signups.date)=14 then signups.users else null end) as d14 from signups
left join sessions using(users)
group by 1
于 2015-08-25T07:07:17.977 に答える