mysql 查詢某時間段內連續n天登陸人數
阿新 • • 發佈:2019-01-25
//30多萬條資料0.4秒 不到,查詢某時間段內連續登陸n天的使用者,1132條
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:[email protected]+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;
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:[email protected]+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;