こんにちは。
新規登録したユーザーを母数とし、
そのユーザーが、1日後、3日後、7日後に
何人ログインしているかを抽出したいのですがうまくいきません。。
登録情報テーブル
■master
.time → 登録日(timestamp型)
.id →ユーザーid
ログインテーブル
■login
.time → ログイン日(timestamp型)
.id →ユーザーid
新規ユーザーは以下で抽出しました。
SELECT
t1.time,
COUNT(distinct(CASE WHEN t1.time= t2.time THEN t1.id ELSE 0 END)) as new
FROM (
SELECT
MAX(DATE(time) AS time,
id
FROM login
WHERE time >= '2016-05-01'
GROUP BY DATE(time),id
) AS t1
LEFT OUTER JOIN (
SELECT
DATE(time) AS time,
id
FROM master
GROUP BY DATE(time),id
) AS t2
ON t1.id = t2.id
Group by t1.time
order by t1.time DESC
この日ごとの新規ユーザーが1日後、3日後、7日後に
ログインしているかを抽出したいのです。
(1日後、3日後、7日後の間にログインではなく
ぴったりその日にログインしているかを抽出したい)
以下のように抽出したいのですがどのようにクエリを追加すればよろしいでしょうか。。
time new 1day 3day 7day
2016-05-16 48
2016-05-15 56
2016-05-14 87 43
2016-05-13 65 47 33
COUNT(distinct(CASE WHEN t1.time= (t2.time)+1 THEN t1.id ELSE 0 END)) as 1day
とかにすると数字は出ますが、
上記のように表記されず、1日、3日ずつ行がずれてしまいます。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/16 10:20