oracle判断连续几个月为0的最大间隔时间

如题所述

oracle判断连续几个月为0的最大间隔时间,原数据包含记录行生成的时间戳字段OP_TIME和一个自增序列中间可能不连续的单据编号 SWF_NUM,概括起来最大间隔时间为:相邻两条记录的时间戳间隔不超过10分钟。以下是具体的间隔时间操作方法:要求统计相邻两条记录的时间戳间隔不超过10分钟的最大连续记录数,整体思路是:筛选出结果集,处理结果集,对结果集中符合条件和不符合条件的记录打上标签。

过滤掉符合条件的记录,使用 ROW_NUMBER对查询结果第二次排序编号,第三次处理结果集:ROW_NUMBER=ROW_NUMBER1对第二次处理得到的结果集自关联。

同时,通过 ROW_NUMBER() 对结果集排序编号,第二次处理结果集:对处理好的结果集通过 ROWNUMBER=ROW_NUMBER1自关联。

在查询结果中将第一次的排序编号相减,差值-1就是连续记录数,对上述结果分组取最大值,得到最大连续记录数。

现在用ROWNUMBER对筛选好的源数据排序,自关联比较相邻记录的时间差,对符合要求的记录通过ROW_NUMBER在排序,得到的结果通过第二次的ROW_NUMBER值自关联。

在查询结果中用第一次的ROW_NUMBER值求差,差值就是符合条件的连续记录数,分组后取最大值,得到结果。

温馨提示:答案为网友推荐,仅供参考