oracle 时间累积合并计算

【问题】

       请教一个问题:
如果我通过sql查询能检索出来多条时间段,我怎么快速计算出来时间。
举例:
我的检索结果:
  2014-9-1 10:00  2014-9-2 11:30
  2014-9-1 10:30  2014-9-2 11:00
  2014-9-3  11:00  2014-9-4 12:00
由于第二段时间包含在第一段时间之内,所以程序要检测出来,同时只用第一段时间的和+第三段时间的和(第三段时间是独立的)]

【回答】

       Oracle下可以借助递归查询(connect by)语句,但由于集合无序,这个语句还是挺难想明白的,而且需求再复杂些就更难写了(比如把重复时间段聚合等)。这种数据量不大的情况下,SPL要灵活简单一些,下面给出几种实现写法:

A
1 $select * from SHIP_BERTH order by S
2 =A1.group@i(S>max(E[,-1]))
3 =A2.new(~.min(S): S,~.max(E): E)
4 =A3.sum(interval@s(S,E))
5 =A1.select(E>E[-1]).sum(interval@s(ma
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值