如何在oracle中從連續(xù)但斷開(kāi)的小范圍創(chuàng)建單個(gè)/多個(gè)數(shù)字范圍

如何在oracle中從連續(xù)但斷開(kāi)的小范圍創(chuàng)建單個(gè)/多個(gè)數(shù)字范圍

我在一張表中有以下數(shù)據(jù)集

并且需要?jiǎng)?chuàng)建如下匯總范圍

? 最佳回答:

您可以使用MATCH_RECOGNIZE執(zhí)行row-by-row模式匹配:

SELECT main_product,
       sub_product,
       start_serial,
       end_serial
FROM   table_name
MATCH_RECOGNIZE(
  PARTITION BY sub_product
  ORDER BY start_serial
  MEASURES
    FIRST(main_product) AS main_product,
    FIRST(start_serial) AS start_serial,
    MAX(end_serial) AS end_serial
  PATTERN (overlaps* last_row)
  DEFINE
    overlaps AS MAX(end_serial) + 1 >= NEXT(start_serial)
)

對(duì)于樣本數(shù)據(jù):

CREATE TABLE table_name (Main_Product, Sub_Product, Start_Serial, End_Serial) AS
SELECT 'Main01', 'sub01', 166255, 166258 FROM DUAL UNION ALL
SELECT 'Main01', 'sub02', 666255, 666258 FROM DUAL UNION ALL
SELECT 'Main02', 'sub01', 166259, 166262 FROM DUAL UNION ALL
SELECT 'Main02', 'sub02', 666259, 666262 FROM DUAL UNION ALL
SELECT 'Main03', 'sub01', 166267, 166270 FROM DUAL UNION ALL
SELECT 'Main03', 'sub02', 666267, 666270 FROM DUAL;

Outputs:

MAIN_PRODUCT SUB_PRODUCT START_SERIAL END_SERIAL
Main01 sub01 166255 166262
Main03 sub01 166267 166270
Main01 sub02 666255 666262
Main03 sub02 666267 666270

fiddle

主站蜘蛛池模板: 久久精品一区二区东京热| 国产精品久久一区二区三区| 精彩视频一区二区| 国产精品久久亚洲一区二区 | 国产精品盗摄一区二区在线| 日本在线一区二区| 日本免费精品一区二区三区| 精品人妻码一区二区三区| 国产精品亚洲高清一区二区| 北岛玲在线一区二区| 极品少妇一区二区三区四区| 中文字幕在线看视频一区二区三区| 精品亚洲一区二区三区在线播放| 日韩一区二区三区在线观看| 一区二区三区免费视频网站| 变态拳头交视频一区二区 | 无码8090精品久久一区| 高清一区二区三区视频| 视频在线观看一区二区三区| 一区二区三区福利| 又紧又大又爽精品一区二区| 在线观看免费视频一区| 国产亚洲无线码一区二区| 亚洲一区在线视频| 在线视频一区二区| 亚洲第一区视频在线观看| 国产小仙女视频一区二区三区| 无码一区二区三区免费视频| 人妻无码一区二区三区四区| 国产亚洲一区二区三区在线不卡 | 亚洲综合av一区二区三区不卡| 无码人妻久久一区二区三区免费丨| 99精品国产一区二区三区不卡| 一区二区三区在线观看| 国产成人av一区二区三区不卡| 亚洲日韩精品一区二区三区| 3d动漫精品一区视频在线观看| 日韩久久精品一区二区三区| 国产美女口爆吞精一区二区| 久久久无码精品国产一区 | 国产精品污WWW一区二区三区|