Sobes.tech
Junior — Middle
101

Können Sie erklären, was Gemeinsame Tabellenausdrücke (CTE) in SQL sind und wie sie verwendet werden?

Unternehmen wurden gefragt
ArendadataArendadata
KeepRise

Antwort von AI

sobes.tech KI

Общие Табличные Выражения (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-запроса.