当前位置: 代码迷 >> Oracle管理 >> oracle 查询记录间隔最大记录数
  详细解决方案

oracle 查询记录间隔最大记录数

热度:45   发布时间:2016-04-24 04:35:12.0
请教大家 oracle 查询记录间隔最大记录数
请教大家
with a as

(select  111 id,  0 value from  dual

union all
select  1111 id,  1 value from  dual
union all
select  222 id,  3 value from  dual
union all
select  333 id,  5 value from  dual
union all
select  444 id,  1 value from  dual
union all
select  555 id,  0 value from  dual
union all
select  666 id,  2 value from  dual
union all
select  777 id,  0 value from  dual
union all
select  888 id,  1 value from  dual
union all
select  999 id,  0 value from  dual)
select * from a
大家可以看到 1111的值 1 和444的值1差两条2记录
444的值1 和888的值 1 差3条记录

请教大家如何查出 相邻2条1之间的最大值

例如上面的结果 就是查出 两条相邻1之间的 最大记录数为3

------解决方案--------------------
select max(rn)
  from (select rn - lag(rn) over(order by rownum) - 1 rn
          from (select a.*, rownum rn from a)
         where value = 1)
  相关解决方案