Junior — Middle
76
Можете ли вы объяснить, что такое Общие Табличные Выражения (CTE) в SQL и как они используются?
Компании, где спрашивали
KeepRise
Ответ от нейросети
sobes.tech AI
Общие Табличные Выражения (CTE, Common Table Expressions) — это временные именованные результаты запроса, которые можно использовать внутри основного SQL-запроса. Они определяются с помощью ключевого слова WITH и упрощают чтение и структуру сложных запросов.
CTE позволяют:
- Разбивать сложные запросы на логические части
- Использовать рекурсию (рекурсивные CTE)
- Повторно использовать один и тот же подзапрос внутри основного запроса
Пример использования CTE:
WITH RecentOrders AS (
SELECT order_id, customer_id, order_date
FROM orders
WHERE order_date > CURRENT_DATE - INTERVAL '30 days'
)
SELECT c.customer_name, r.order_id, r.order_date
FROM customers c
JOIN RecentOrders r ON c.customer_id = r.customer_id;
Здесь RecentOrders — это CTE, который выбирает заказы за последние 30 дней. Затем основной запрос использует этот временный набор данных для объединения с таблицей клиентов.
В Python, при работе с базой через библиотеки (например, psycopg2 для PostgreSQL), CTE просто включаются в текст SQL-запроса.