Я работаю над проблемой в Oracle, которую я пытаюсь решить «элегантно».
У меня есть извлечение данных с тремя различными идентификаторами: A, B, C
Каждый идентификатор может появляться в более чем одной строке, и каждая строка может иметь один или несколько из этих трех идентификаторов (т. Е. Столбец заполнен или равен нулю).
Я хочу иметь возможность группировать все записи, в которых есть любая комбинация из A, B или C, и назначать им один и тот же идентификатор группы.
Извлечь таблицу, показывающую, что должны делать возможные группыbe:
Rownum | A | B | C | End group
1 p NULL NULL 1
2 p r NULL 1
3 q NULL NULL 2
4 NULL r NULL 1
5 NULL NULL s 2
6 q NULL s 2
Мой оригинальный подход заключался в назначении guid для каждой строки в извлечении и создании таблицы поиска для трех идентификаторов:
GUID | IDENTIFIER | IDENTIFIER TYPE | GROUP | END GROUP
1 p A 1 1
2 p A 1 1
2 r B 2 1
3 q A 3 3
4 r B 2 1
5 s C 4 3
6 q A 3 3
6 s C 4 3
Затем группировка по идентификатору и назначениеномер группы.Группы, однако, должны быть объединены, где это возможно, чтобы обеспечить представление, показанное в конечной группе.
Единственное решение, которое я могу придумать для этой проблемы, - это использовать циклы, которых я бы предпочел избежать.
Любые идеи будут с благодарностью.
Найл