题解 | #计算用户的平均次日留存率#
计算用户的平均次日留存率
https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453
SELECT COUNT(Q2.date)/COUNT(Q1.date) AS avg_ret
FROM
(SELECT DISTINCT device_id,date
FROM question_practice_detail) AS Q1
LEFT JOIN
(SELECT DISTINCT device_id,date
FROM question_practice_detail) AS Q2
ON Q1.device_id=Q2.device_id AND Q2.date = DATE_ADD(Q1.date, interval 1 day);
date_add函数定义和用法
DATE_ADD() 函数向日期添加指定的时间间隔。
语法:
DATE_ADD(date,INTERVAL expr type)
date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
type 参数可以是下列值:
Type 值
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH

