过去15天内连续3次或更多次参赛作品

时间:2018-04-03 17:12:47

标签: sql oracle date sequential

我有以下数据:

script

我需要获取过去15天内连续销售3天或更长时间的emp_id数据。 输出应该是: 777 999

以下是查询:

ID       EMP_ID      SALE_DATE 
---------------------------------
1        777         5/28/2016
2        777         5/29/2016
3        777         5/30/2016
4        777         5/31/2016
5        888         5/26/2016
6        888         5/28/2016
7        888         5/29/2016
8        999         5/29/2016
9        999         5/30/2016
10       999         5/31/2016

但这仅返回过去三天的连续交易。 注意:这是oracle。

1 个答案:

答案 0 :(得分:1)

假设您每天有一行,可以使用lead()

select distinct emp_id
from (select t1.*,
             lead(sale_date, 1) over (partition by emp_id order by sale_date) as sd_1,
             lead(sale_date, 2) over (partition by emp_id order by sale_date) as sd_2
      from table1 t1
      where sale_date >= trunc(sysdate) - 14
     ) t
where sd_1 = sale_date + 1 and
      sd_2 = sale_date + 2;