牛客网mysql全部题目第二十九题
求平均次日留存率
我理解的是第一天刷完题第二天也刷题的用户除以第一天刷题的用户
为什么题解里面 是要除以所有日期啊😱
就四个人 被除数咋是去重数据表的所有条目数目 七天呀
牛客网mysql全部题目第二十九题
求平均次日留存率
我理解的是第一天刷完题第二天也刷题的用户除以第一天刷题的用户
为什么题解里面 是要除以所有日期啊😱
就四个人 被除数咋是去重数据表的所有条目数目 七天呀
题解
select count(date2) / count(date1) as avg_ret
from (
select
distinct qpd.device_id,
qpd.date as date1,
uniq_id_date.date as date2
from question_practice_detail as qpd
left join(
select distinct device_id, date
from question_practice_detail
) as uniq_id_date
on qpd.device_id=uniq_id_date.device_id
and date_add(qpd.date, interval 1 day)=uniq_id_date.date
) as id_last_next_date
我理解的
select
count(distinct 第二天刷题用户)/count(distinct 第一天刷题用户)
from
(
select
today.device_id as 第一天刷题用户
,today.date as 第一天
,tomorrow.device_id as 第二天刷题用户
,tomorrow.date as 第二天
from question_practice_detail today
left join
(
select
device_id
,date
from question_practice_detail
) tomorrow
on today.device_id = tomorrow.device_id
and date_add(today.date,interval 1 day) = tomorrow.date
) a