SELECT user_id
FROM
(
SELECT user_id
,DATE(log_time) AS log_date
,LEAD(DATE(log_time), 1) OVER(PARTITION BY user_id ORDER BY log_time) AS l1
,LEAD(DATE(log_time), 2) OVER(PARTITION BY user_id ORDER BY log_time) AS l2
FROM login_tb
) AS t
WHERE DATEDIFF(l1,log_date) = 1
AND DATEDIFF(l2,l1) = 1
AND user_id IN (
SELECT user_id
FROM register_tb)
ORDER BY user_id;
参考leetcode连续问题最后解决代码:https://leetcode.cn/problems/consecutive-numbers/solutions/2832155/lian-xu-deng-lu-de-2chong-si-lu-he-yi-ge-c49e
有不正确的地方请指正
至少连续三天的条件为判断准则,只要lead一次和lead两次时间间隔为1天即符合

京公网安备 11010502036488号