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

高手们有没有人讲详细点的,我想教下,oracle判断连续几个月为0的最大间隔时间
最新回答
甜度超标。

2025-03-30 03:32:51

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值求差,差值就是符合条件的连续记录数,分组后取最大值,得到结果。