题解 | #计算用户的平均次日留存率#

计算用户的平均次日留存率

https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453

select count(distinct nq.device_id,datee)/count(distinct q.device_id,date) 
from question_practice_detail q
left join
(select distinct device_id, date_add(date,interval 1 day) as datee from 
question_practice_detail) as nq
on nq.device_id=q.device_id and nq.datee=q.date

1.date_add函数是MySQL中的一个函数,用于在日期上进行加法运算。它的语法如下:

date_add(date, interval value unit)

其中,date是要进行运算的日期,value是要加上的数值,unit表示要加上的时间单位。

2.根据题目需求,先将表分裂开,第一天来的,和第二天来的,再计算最终表得到结果

分裂合并:

select * from

(select distinct device_id,date from question_practice_detail) as q

left join

(select distinct device_id, date_add(date,interval 1 day) as datee from

question_practice_detail) as nq

on nq.device_id=q.device_id and nq.datee=q.date

计算:

select count(distinct nq.device_id,datee)/count(distinct q.device_id,date)

from question_practice_detail q

left join

(select distinct device_id, date_add(date,interval 1 day) as datee from

question_practice_detail) as nq

on nq.device_id=q.device_id and nq.datee=q.date

全部评论

相关推荐

qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
cpp苦手:一眼ddl
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务