Sobes.tech
Junior — Middle
75

Можете ли вы объяснить, что такое Общие Табличные Выражения (CTE) в SQL и как они используются?

Компании, где спрашивали
ArendadataArendadata
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-запроса.