группировать несколько oracle таблиц в одну таблицу в зависимости от порядка - PullRequest
0 голосов
/ 02 апреля 2020

Я новичок в oracle. У меня есть три таблицы: START_NODES:

ref_id    id     orn
--------------------
1         100    0
1         200    1
1         300    2
1         400    3
2         160    0
2         260    1
2         360    2
2         460    3

Middle_NODES:

ref_id    id     orn
--------------------
1        1000    0
1        2000    1
2        1500    0
2        2500    1
2        3500    2
2        4500    3
2        5500    4

END_NODES:

ref_id    id     orn
--------------------
1         150    0
1         250    1
1         350    2
1         450    3
2         170    0
2         270    1
2         370    2
2         470    3

Мне нужно сгруппировать их в одну таблицу на основе ref_id и orn, где orn - порядок начальных_узлов, затем средних узлов, затем конечных-узлов:

START_NODES:

ref_id    id     orn
--------------------
1         100     0
1         200     1
1         300     2
1         400     3
1         1000    4
1         2000    5
1         150     6
1         250     7
1         350     8
1         450     9
2         160     0
2         260     1
2         360     2
2         460     3
2         1500    4
2         2500    5
2         3500    6
2         4500    7
2         5500    8
2         170     9
2         270     10
2         370     11
2         470     12

есть подсказка, как начать?

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Вы можете достичь этого, используя UNION ALL следующим образом

SELECT REF_ID, ID, ROW_NUMBER() OVER (PARTITION BY REF_ID ORDER BY NOD, ORN) - 1 AS ORN
FROM
(SELECT T.*, 1 AS NOD FROM START_NODES T
UNION ALL
SELECT T.*, 2 AS NOD FROM MIDDLE_NODES T
UNION ALL
SELECT T.*, 3 AS NOD FROM END_NODES T)
0 голосов
/ 02 апреля 2020

Попробуйте объединить селекторы на столе, например:

SELECT  1 table_id,
        ref_id,
        id,
        orn
FROM    start_nodes

Закажите объединение, как вам нужно. Используйте эту таблицу как внутренний запрос к запросу по нужным столбцам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...