これは、顧客の詳細とアプリをインストールした時刻を含むテーブルがあるシナリオです。アプリを再インストールした場合でも、テーブルに戻る方法を見つけることができます。次の表には、同じ顧客の購入時刻があります。
users
uid Version install_time
1 1 2013-06-01 00:00:00
1 2 2014-06-01 00:00:00
1 3 2014-10-01 00:00:00
2 3 2014-11-11 00:00:00
3 2 2013-11-11 00:00:00
4 4 2015-01-01 00:00:00
trans
uid transaction_time
1 2013-07-01 00:00:00
1 2014-07-01 00:00:00
1 2014-11-01 00:00:00
2 2014-12-11 00:00:00
999 2014-11-04 00:13:49
Q: 顧客が最初の購入を行うまで、平均で何日かかりますか?
これは私がこれまでに試みたことです:
select avg(`purchase after install`) as average
from
(
select
u.uid,
dayofyear(t.transaction_time)-dayofyear(u.install_time) AS `purchase after install`
from users u
left join trans t -- joining the transaction time to user table
on u.uid=t.uid
where t.transaction_time >= u.install_time -- because the cartesian product from the join is creating additional rows for uid 1
-- group by 1
) final
私は65日を取得していますが、テーブルに気付くと、購入を正確に30日間隔で行っているため、平均は30日になるはずです.