Я пытаюсь написать запрос выбора в Oracle, в котором результаты «изолированы» по группам. У каждой группы есть родительский объект, у которого есть несколько дочерних элементов, поэтому я хочу сгруппировать строки таким образом, чтобы каждая группа начиналась с родительского объекта, за которым следуют соответствующие дочерние элементы.
Таблица имеет следующую структуру:
ID | CREATION_DATE | MASTER_ID
33 | 2019-07-01 09:31:04 | null
52 | 2019-07-01 10:45:04 | null
64 | 2019-07-01 11:00:04 | 33
71 | 2019-07-01 11:01:04 | 52
72 | 2019-07-01 12:31:04 | 33
До сих пор я пробовал следующий код, который возвращает строки, не сгруппированные по MASTER_ID, но упорядоченные по CREATION_DATE:
SELECT ID, CREATION_DATE, MASTER_ID
FROM ENTITY
WHERE CREATION_DATE >= TO_DATE('06-01-2019','MM-DD-YYYY')
ORDER BY CREATION_DATE DESC
Я хочу найти способ вернуть следующую структуру:
ID | CREATION_DATE | MASTER_ID
33 | 2019-07-01 09:31:04 | null
64 | 2019-07-01 11:00:04 | 33
72 | 2019-07-01 12:31:04 | 33
52 | 2019-07-01 10:45:04 | null
71 | 2019-07-01 11:01:04 | 52
Проблема в том, что родительская сущность постоянно null
, поэтому я не могу использовать GROUP BY
.
У вас есть какой-нибудь совет, как мне работать над этим?