有N条记录,记录打卡人,打卡时间。现在要找到不同的人连续3天打卡时间一样的记录
如1号 7:00 打卡人A、B、D
7:10 打卡人D、F
7:11 打卡人G、H、I、J、K、M、N
…………
2号 7:05 打卡人C、D
7:17 打卡人A、E、F
7:22 打卡人G、H、I
7:23 打卡人 J、K、M、N
…………
3号 7:05 打卡人A、F
7:19 打卡人C、E、F
7:24 打卡人B、H、I
7:26 打卡人 G、M、N
…………
5号 7:25 打卡人M、N、F
7:02 打卡人G、E、F
7:14 打卡人A、B、H、I
7:16 打卡人 C、J
…………
求一oracle语句,查询到不同人连续3天或以上打卡时间相同的记录
即能找到M、N二个人在1、2、3号是同一时间打的卡
想了好久,想不到好的方法,求助,多谢帮助
------解决方案--------------------
这样一个思路哈 : 先组装表,得出如下数据
打卡人,打卡天,第一天打卡时间,下一天打卡时间,第三天打卡时间 然后就可以出来了
下面给个思路哈, 没有去验证 有没有问题
如下 字段 :
user,reg_date,reg_time
select distinct user from
(select a.*,
(select reg_time from t_reg where reg_date=a.reg_date+1 and user=a.user) as reg_time_2
(select reg_time from t_reg where reg_date=a.reg_date+2 and user=a.user) as reg_time_3
from t_reg a ) t where reg_time =reg_time2 and reg_time=reg_time_3
------解决方案--------------------
WITH ta AS
(select 1 rq,'7:00' sj, 'A、B、D' dkr from dual union all
select 1 rq,'7:10' sj, 'D、F' dkr from dual union all
select 1 rq,'7:11' sj, 'G、H、I、J、K、M、N' dkr from dual union all
select 2 rq,'7:05' sj, 'C、D' dkr from dual union all
select 2 rq,'7:17' sj, 'A、E、F' dkr from dual union all
select 2 rq,'7:22' sj, 'G、H、I' dkr from dual union all
select 2 rq,'7:23' sj, 'J、K、M、N' dkr from dual union all
select 3 rq,'7:05' sj, 'A、F' dkr from dual union all
select 3 rq,'7:19' sj, 'C、E、F' dkr from dual union all
select 3 rq,'7:24' sj, 'B、H、I' dkr from dual union all
select 3 rq,'7:26' sj, 'G、M、N' dkr from dual union all
select 5 rq,'7:25' sj, 'M、N、F' dkr from dual union all
select 5 rq,'7:02' sj, 'G、E、F' dkr from dual union all
select 5 rq,'7:14' sj, 'A、B、H、I' dkr from dual union all
select 5 rq,'7:16' sj, 'C、J' dkr from dual
),
tb AS
(select 'A' name from dual union all