Расскажи про CTE — WITH, подзапросы которые накладываются друг на друга.

CTE — именованный результат запроса внутри одного SQL-выражения, объявляемый через WITH. Он помогает разбить сложную логику на понятные шаги, но не всегда материализуется.

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

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

CTE — именованный результат запроса внутри одного SQL-выражения, объявляемый через WITH. Он помогает разбить сложную логику на понятные шаги, но не всегда материализуется.

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

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

CTE — именованный результат запроса внутри одного SQL-выражения, объявляемый через WITH. Он помогает разбить сложную логику на понятные шаги, но не всегда материализуется.

WITH totals AS (
  SELECT customer_id, SUM(amount) AS total
  FROM orders
  GROUP BY customer_id
)
SELECT customer_id, total
FROM totals
WHERE total > 1000;

Один CTE может использовать ранее объявленный; для иерархий существует рекурсивная форма. CTE не является автоматически постоянной таблицей или способом ускорить запрос. Поведение оптимизатора и материализации зависит от СУБД, поэтому производительность проверяют по плану.

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

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

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

Подробнее