Встречается на собеседованиях • сегодня

Что такое оператор WITH в БД

Оператор WITH (Common Table Expression, CTE) позволяет создавать временные результаты запроса, которые можно использовать в основном запросе. Он улучшает читаемость и поддерживает рекурсивные запросы.

Пример:

sql
WITH sales_summary AS (
    SELECT product_id, SUM(quantity) AS total_quantity
    FROM sales
    GROUP BY product_id
)
SELECT p.name, s.total_quantity
FROM products p
JOIN sales_summary s ON p.id = s.product_id;

Особенности:

  • CTE существует только во время выполнения запроса
  • Может быть рекурсивным (с WITH RECURSIVE)
  • Упрощает сложные запросы, разбивая их на части
  • Альтернатива подзапросам и временным таблицам

Рекурсивный пример:

sql
WITH RECURSIVE hierarchy AS (
    SELECT id, name, parent_id FROM employees WHERE id = 1
    UNION ALL
    SELECT e.id, e.name, e.parent_id
    FROM employees e
    JOIN hierarchy h ON e.parent_id = h.id
)
SELECT * FROM hierarchy;
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы