求sql语句

过眼浮云866 2020-08-27 09:14:41
表 table1里面有3个字段,uuid,date;
此表为用户登录日志,每天存储一条记录;求一个月内,连续登录5天的用户;
...全文
112 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liusichen_0 2020-08-28
  • 打赏
  • 举报
回复
测试过可用,都是基本语法,想要几天就继续加就行
liusichen_0 2020-08-28
  • 打赏
  • 举报
回复
SELECT DISTINCT uuid FROM ( SELECT t1.uuid,DATE(t1.date) d1 FROM userlogin t1 INNER JOIN userlogin t2 ON t1.uuid=t2.uuid AND DATE(t1.date) + 1 = DATE(t2.date) UNION ALL SELECT t1.uuid,DATE(t1.date) d1 FROM userlogin t1 INNER JOIN userlogin t2 ON t1.uuid=t2.uuid AND DATE(t1.date) + 2 = DATE(t2.date) UNION ALL SELECT t1.uuid,DATE(t1.date) d1 FROM userlogin t1 INNER JOIN userlogin t2 ON t1.uuid=t2.uuid AND DATE(t1.date) + 3 = DATE(t2.date) UNION ALL SELECT t1.uuid,DATE(t1.date) d1 FROM userlogin t1 INNER JOIN userlogin t2 ON t1.uuid=t2.uuid AND DATE(t1.date) + 4 = DATE(t2.date) )T GROUP BY uuid,CONCAT(uuid,DATE(d1)) HAVING COUNT(1)=4;
evanweng 2020-08-28
  • 打赏
  • 举报
回复
引用 6 楼 qq_18379499 的回复:
[quote=引用 5 楼 evanweng 的回复:]这么简单粗暴。。。
小哥哥,谢谢你给我分享的地址,但是我要的是一句sql,而你教的是方法,关键是你教的方法我理解不了,且楼上那个小哥哥给的sql 确实可以用,所以我就结贴了;[/quote]问题不大,加油
过眼浮云866 2020-08-28
  • 打赏
  • 举报
回复
引用 5 楼 evanweng 的回复:
这么简单粗暴。。。
小哥哥,谢谢你给我分享的地址,但是我要的是一句sql,而你教的是方法,关键是你教的方法我理解不了,且楼上那个小哥哥给的sql 确实可以用,所以我就结贴了;
evanweng 2020-08-28
  • 打赏
  • 举报
回复
这么简单粗暴。。。
过眼浮云866 2020-08-27
  • 打赏
  • 举报
回复
打错了,表里面就2个字段,一个用户id,一个日期
evanweng 2020-08-27
  • 打赏
  • 举报
回复
首先order by uuid asc, date asc;然后通过辅助参数计算连续日期的次数,如果用户id相同,日期连续,计数器加1,否则归0;最后在where里面判断计数器>=5就可以了。可以参考我leetcode的题解:https://leetcode-cn.com/problems/human-traffic-of-stadium/solution/yong-liang-ge-fu-zhu-ji-shu-qi-xun-zhao-idfan-wei-/ 和 https://leetcode-cn.com/problems/department-top-three-salaries/solution/zeng-jia-pai-ming-fu-zhu-can-shu-by-evan-148/

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧