SET @wy=0;
SELECT DISTINCT uid
FROM (SELECT MAX(date)-MIN(date) less,uid
FROM (SELECT date-rn diff, uid, date, rn
FROM (SELECT @wy:=@wy+1 rn, uid,
datediff(login_time,'1971-01-01') date,login_time
FROM (SELECT date(LOGINDATE) login_time, GUID uid FROM login_115_tab
WHERE LOGINDATE>='2016-03-01 00:00:00' AND LOGINDATE <'2016-03-30 00:00:00'
GROUP BY GUID, date(LOGINDATE)
ORDER BY uid, date(login_time)
) as a
)as b
)as c
GROUP BY diff,uid
)as d
WHERE less>=6;
本文介绍了一种在大规模数据集中快速查询指定时间段内连续登录超过一定天数用户的SQL实现方案。通过对日期进行处理并利用自定义变量计算日期差,有效地过滤出符合条件的数据。
8193

被折叠的 条评论
为什么被折叠?



