数据区间重叠处理

博客探讨了如何处理数据的重叠区间问题,通过SQL查询获取数据并按num1排序,然后利用SPL语言进行区间合并分组,最终形成无重叠的区间记录。
摘要由CSDN通过智能技术生成

【问题】

如:
   xh    num1          num2
   1     10015        60080
   2     20022        80090
   3     30250        40900
判断数据重叠区间后最后形成一条记录为:1    10015   80090
   xh    num1          num2
   1     10015        30080
   2     20022        50090
   3     60250        90900
处理后为:
   xh    num1          num2
   1     10015        50090
   2     60250        90900

【回答】

原理是判断是否可以和上一行合并成同一个区间,如果不可以则处理成另一个分组,可以则处理成同一个分组,最后在每组算最小最大端点即可。但SQL本身没有序运算,写成嵌套的方式,也很费劲。用SPL会简单一些,具体脚本如下:

A B
1 $select num1,num2 from tb order by num1
2 =A1.group@i(num1>num2[-1])
3 =A2.new(#:xh,~.min(num1):num1,~.max(num2):num2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值