分享

SQL查询最近连续登录的用户

hyj 发表于 2018-4-26 15:34:37
本帖最后由 hyj 于 2018-4-26 15:35 编辑

画了下楼主的思路,很厉害
1.png
回复

使用道具 举报

fly2015 发表于 2018-4-27 17:21:10
我说下我的思路:
1、首先过滤掉明显不符合要求的group by userid having count(1)<3
2、再筛选出每个用户的logindate>=max(logindate-2) and logindate<=max(logindate)
3、再group by userid having count(distinct logindate)=3 结果即为所求
回复

使用道具 举报

javaanddonet 发表于 2018-4-27 17:52:09
fly2015 发表于 2018-4-27 17:21
我说下我的思路:
1、首先过滤掉明显不符合要求的group by userid having count(1)=max(logindate-2) and  ...

1、首先过滤掉明显不符合要求的group by userid having count(1)<3
2、再筛选出每个用户的logindate>=max(logindate-2) and logindate<=max(logindate) --这里得在分组的基础上进行判断吧?使用分组函数?还是其他方法?
3、再group by userid having count(distinct logindate)=3 结果即为所求

select user_id, user_name, logon_date, row_number() over(partiton by user_id order by logon_date) as group_seq
from user_logon_history;
回复

使用道具 举报

12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条