sql 查询连续七天以上都有打卡的员工记录


利用一下ORACLE的ROWNUM机制来做点文章
我假设有这一张表 tt
a,上班日期(dd) 
1,20080101 
1,20080102 
1,20080103 
2,20080101 
2,20080103 
3,20080101 
也可能是乱序的 
第一步:排序 
select * from  tt t order by t.a,t.dd
第二步:日期-ROWNUM如果相同的话认为他们是连续的
select u.*,(u.dd-rownum)d from
(select * from  tt t order by t.a,t.dd)u
第三步:,然后GORUP BY一下 ,想通的数量大于6
select p.a,count(1) from 
(select u.*,(u.dd-rownum)d from
(select * from  tt t order by t.a,t.dd)u)p
group by p.a,p.d having count(1)>=7

你可能感兴趣的:(sql 查询连续七天以上都有打卡的员工记录)