提取具有多个序列的代码的第一个/最后一个值的Oracle函数

oyjwcjzk  于 2023-05-16  发布在  Oracle
关注(0)|答案(1)|浏览(165)

我很难找到一种方法来提取一系列代码中的第一个和最后一个值,这些代码在一天内可能会出现多次。例如,表数据代理的时间表可以有休息,午餐和其他代码,如教练等。我需要提取每个座席每天每个辅导会话的第一个和最后一个值。我已经附上了表格数据和预期输出的图片。
当我使用last和first值函数时,它希望将所有的指导分组为一个,而不是示例中的两个。这就是我的问题所在。
PIC示例:
enter image description here

ht4b089n

ht4b089n1#

试试这个(START作为列名将不起作用,我改为STRT)

SELECT * FROM DATA
MATCH_RECOGNIZE (
PARTITION BY id, code
ORDER BY strt, stop
MEASURES first(strt) AS strt, MAX(stop) AS stop
PATTERN( merged* a )
DEFINE
  merged AS stop = NEXT(strt)
)
WHERE code= 'Co'
;

相关问题