Рекурсивные CTE в SQL: деревья, графы и состав изделия
Задачи SQL на WITH и рекурсивные CTE: обход дерева, защита от циклов и расчёт состава изделия.
Состав подборки: 1 вопрос с выбором ответа, 3 задачи на код. Условия и формат проверки указаны на странице каждой задачи.
Разберите маленький пример
Для дерева A → B → C глубины относительно A равны 0, 1, 2. В графе может быть ещё ребро C → A. Тогда простое продолжение обхода зациклится без ограничения повторных узлов. Наличие нескольких путей к детали также влияет на суммарную потребность.
На что обратить внимание
- Разделяйте начальную часть CTE и правило перехода к следующему уровню.
- Для леса начинайте с каждого корня, а не только с первого найденного.
- Узел, путь и посещение узла — разные сущности: не удаляйте нужные пути бездумным DISTINCT.
- В задаче спецификации перемножайте количества вдоль пути и учитывайте общие детали разных ветвей.
Порядок практики
- WITH в SQL: два CTE и порядок использования — выбор ответа.
- SQL: Обход дерева: глубина и путь — Пути, корни и листья всего каталога — код.
- SQL: Обход графа и защита от циклов — Простые маршруты и допустимые продолжения — код.
- SQL: Расчёт состава изделия рекурсивным запросом — Полная потребность в узлах и общих деталях — код.
Куда двигаться дальше
Продолжение с графами, интервалами и аналитическими запросами — платный курс «Продвинутый SQL».
- WITH в SQL: два CTE и порядок использования
Прочитайте запрос с двумя CTE и итоговым JOIN. Определите, как связаны именованные промежуточные результаты.
SQL с нуля: бесплатный курс с практикой - SQL: Обход дерева: глубина и путь — Пути, корни и листья всего каталога
Практика: Обход дерева: глубина и путь. Пути, корни и листья всего каталога. Самостоятельное условие и проверка решения на Latorn.
Продвинутый SQL: сложные запросы и задачи для собеседований - SQL: Обход графа и защита от циклов — Простые маршруты и допустимые продолжения
Практика: Обход графа и защита от циклов. Простые маршруты и допустимые продолжения. Самостоятельное условие и проверка решения на Latorn.
Продвинутый SQL: сложные запросы и задачи для собеседований - SQL: Расчёт состава изделия рекурсивным запросом — Полная потребность в узлах и общих деталях
Практика: Расчёт состава изделия рекурсивным запросом. Полная потребность в узлах и общих деталях. Самостоятельное условие и проверка решения на Latorn.
Продвинутый SQL: сложные запросы и задачи для собеседований
