连续3个月或以上没有数据的用户查询出来。。例如有数据
日期 用户号 度数
201301 a 1
201303 a 2
201305 a 1
201308 a 1
201301 b 2
201302 b 2
201307 b 2写一个sql,能把用户b查询出来。条件:连续3个月没有数据。比如b用户 连续3个月急以上就是 3 、4、5.6月
而a没有
日期 用户号 度数
201301 a 1
201303 a 2
201305 a 1
201308 a 1
201301 b 2
201302 b 2
201307 b 2写一个sql,能把用户b查询出来。条件:连续3个月没有数据。比如b用户 连续3个月急以上就是 3 、4、5.6月
而a没有
as(
select '201301','a',1 union all
select '201303','a',2 union all
select '201305','a',1 union all
select '201308','a',1 union all
select '201301','b',2 union all
select '201302','b',2 union all
select '201307','b',2
),
cte as(
select *,row=row_number()over(partition by 用户号 order by 日期) from tb
)
select 用户号 from cte a where exists(select 1 from cte b where a.row+1=b.row and a.用户号=b.用户号 and left(a.日期,4)+'-'+right(a.日期,2)+'-01'<dateadd(month,-3,left(b.日期,4)+'-'+right(b.日期,2)+'-01'))