最近看到一个求助贴,说的是有一张考勤表,表结构为: 员工编号 NO, 上班日期 DATE ,上班状态 STATUS ( 0 正常上班 1 加班 2 迟到), 想统计所有员工最近连续加班次数,开始加班日期,结束加班日期,以及最近连续迟到次数,开始迟到日期,结束迟到日期。之前做过类似的统计,比如用户连续访问天数,打地鼠连续命中次数等,思路基本相同。这里做一次详细记录:
一、准备数据
1.建表
create table stat_work
(NO CHAR(4) NOT NULL,LOGIN_DATE DATE,STATUS NUMBER(1));
2.插入数据
INSERT INTO STAT_WORK values('1001',to_date('2020-01-17','yyyy-mm-dd'),2);
INSERT INTO STAT_WORK values('1001',to_date('2020-01-16','yyyy-mm-dd'),2);
INSERT INTO STAT_WORK values('1002',to_date('2020-01-16','yyyy-mm-dd'),1);
INSERT INTO STAT_WORK