Чем CTE отличается от подзапроса?

CTE (Common Table Expression) — это именованный временный результат, который можно использовать в основном запросе, а подзапрос — это вложенный запрос внутри другого запроса.

Короткий ответ

Что ответить на собеседовании

CTE (Common Table Expression) — это именованный временный результат, который можно использовать в основном запросе, а подзапрос — это вложенный запрос внутри другого запроса.

Подробный разбор

Ответ с пояснениями

CTE (Common Table Expression) — это именованный временный результат, который можно использовать в основном запросе, а подзапрос — это вложенный запрос внутри другого запроса.

Ключевые отличия:

  • Читаемость и структура: CTE обычно делают запрос более читаемым и структурированным, особенно при сложных запросах с несколькими уровнями вложенности.
  • Повторное использование: CTE можно использовать несколько раз в основном запросе, подзапрос — нет (если не дублировать).
  • Рекурсия: CTE поддерживают рекурсивные запросы, что невозможно с обычными подзапросами.

Пример CTE:

WITH recent_orders AS (
    SELECT * FROM orders WHERE order_date > CURRENT_DATE - INTERVAL '7 days'
)
SELECT * FROM recent_orders WHERE amount > 100;

В подзапросе аналогично, но вложенность может быть сложнее для восприятия.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее