Как отменить заказ с помощью подключения до - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть данные, как показано ниже:

 ID          DATA          S_LEVEL 
1304819     M02-004           1
1304819     M01-003           2
1304819     M01-005           3
1304819     MT-M01-005        4
1304819     M01-004           5
1304819     M01-002           6
1304819     M01-009           7
1304819     M01-020           8
1304819     MT-3100-007A      9

Я хочу вывод, как показано ниже, используя connect by prior и level:

 ID          DATA        S_LEVEL     D_LEVEL
1304819     M02-004         1           9
1304819     M01-003         2           8
1304819     M01-005         3           7
1304819     MT-M01-005      4           6
1304819     M01-004         5           5
1304819     M01-002         6           4
1304819     M01-009         7           3
1304819     M01-020         8           2
1304819     MT-3100-007A    9           1

1 Ответ

0 голосов
/ 02 апреля 2019

используйте row_number() для генерации и применения порядка D_level на

SELECT A.*, ROW_NUMBER () OVER (PARTITION BY PARTID ORDER BY MAX (S_LEVEL) DESC) AS D_LEVEL
  FROM (SELECT PARTID, DATA, S_LEVEL FROM TABLE 
       ) 
  GROUP BY PARTID,DATA,S_LEVEL ORDER BY PARTID,S_LEVEL,D_LEVEL DESC
...