Курс по SQL - урок 2 - Создание и редактирование таблиц. Типы данных.
Пример Common Table Expressions (CTE) в PostgreSQL
Общие табличные выражения - это конструкции начинающиеся с WITH Есть таблица categories с полями id, name, parent_id (null если нет родительской категории) WITH RECURSIVE category_hierarchy AS ( -- Базовый случай: выбор всех категорий без родителей
SELECT
id,
name as parent,
name,
ARRAY[id]::BIGINT[] AS ids, -- массив идентификаторов категорий
ARRAY[]::VARCHAR[] AS names, -- массив названий категорий
1 AS level
FROM categories
WHERE parent_id IS NULL
UNION ALL
-- Рекурсивный случай: выбор дочерних категорий
SELECT
c.id,
ch.parent,
c...
CTE в SQL: как писать читаемые запросы с WITH
CTE (Common Table Expression) — именованный временный результат запроса, который можно использовать как таблицу внутри основного запроса. Делает сложные запросы читаемыми. Открыть тренажёр → https://sqllab.ru/practice WITH название AS (
SELECT ...
)
SELECT *
FROM название;
Без CTE: SELECT user_id, COUNT(*) AS orders_count
FROM (
SELECT user_id FROM orders WHERE status = 'completed'
) sub
GROUP BY user_id
HAVING COUNT(*) > 5;
С CTE: WITH completed_orders AS (
SELECT user_id
FROM orders
WHERE status...