Что такое Common Table Expressions (CTE) в SQL

Python Senior Без компании
Что такое Common Table Expressions (CTE) в SQL
Ответы
CTE (Common Table Expressions) — это временные результирующие наборы, которые можно использовать в рамках выполнения одного SQL-запроса. Они улучшают читаемость и структурируют сложные запросы. **Особенности:** - Определяются с помощью `WITH` - Существуют только во время выполнения запроса - Могут быть рекурсивными - Могут ссылаться на другие CTE в том же запросе **Пример:** ``` WITH department_stats AS ( SELECT department_id, COUNT(*) as emp_count FROM employees GROUP BY department_id ) SELECT d.department_name, ds.emp_count FROM departments d JOIN department_stats ds ON d.department_id = ds.department_id WHERE ds.emp_count > 10; ``` **Рекурсивный CTE:** ``` WITH RECURSIVE hierarchy AS ( SELECT id, name, parent_id, 1 AS level FROM categories WHERE parent_id IS NULL UNION ALL SELECT c.id, c.name, c.parent_id, h.level + 1 FROM categories c JOIN hierarchy h ON c.parent_id = h.id ) SELECT * FROM hierarchy; ```