当前位置:   article > 正文

oracle查询结果同一组取最早开始时间和最晚完成时间_oracle sql 分组 取最早日期数据

oracle sql 分组 取最早日期数据

场景:一张定单有多个环节,一个环节可能出现多次,计算每个环节从派发到完成的时间

1.介绍 LAST_VALUE 和 FIRST_VALUE 函数

函数的作用恰如其名,取出首尾记录值。

需要注意的是:
first_value()是取第一个值,没有异议。
last_value()默认统计范围是 rows between unbounded preceding and current row,取的是当前行的尾值;如需取当前所有环节的尾值,需要指定:rows between unbounded preceding and unbounded following

2.sql实战示例

SELECT DISTINCT LAST_VALUE(a.COMPLETE_TIME)
                         OVER (PARTITION BY a.ACTIVITY_INST_NAME
                             ORDER BY a.CREATE_TIME ROWS BETWEEN unbounded preceding AND unbounded following)  AS LAST_TIME_VALUE,
              FIRST_VALUE(a.CREATE_TIME)
                          OVER (PARTITION BY a.ACTIVITY_INST_NAME
                              ORDER BY a.CREATE_TIME ROWS BETWEEN unbounded preceding AND unbounded following) AS FIRST_TIME_VALUE,
              a.ACTIVITY_INST_NAME
FROM V_WS_NEWLOCALCIRCUIT_TASK a
WHERE 1=1
 AND A.SHEET_ID = 'ZJF-388-191016-00071'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

原始数据与查询结果对比:
在这里插入图片描述
有木有解决电脑前你的问题,欢迎点赞和讨论~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/121793
推荐阅读
相关标签
  

闽ICP备14008679号