COUNT(q2.device_id) / COUNT(q1.device_id) 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)
终于看明白了,q1.device_id=q2.device_id,相当于一个限定,为后面q2.date = DATE_ADD(q1.date, interval 1 day)最全铺垫,如果q2.date和q1.date➕1天相等,且device_id也相同,说明这个用户第二天刷题了。

京公网安备 11010502036488号