CTE (Common Table Expression) — именованный временный результат, создаваемый через WITH. Существует только в рамках одного запроса. Делает сложные запросы читаемыми и позволяет ссылаться на промежуточный результат несколько раз.
CTE — для читаемости и переиспользования промежуточного результата. Подзапрос — для одноразовой простой логики. По производительности в большинстве СУБД (PostgreSQL, ClickHouse) — одинаково.
CTE, ссылающаяся сама на себя через UNION ALL. Используется для иерархий (employee → manager), генерации последовательностей дат, обхода графов.
Агрегации · JOIN-запросы · Оконные функции · Подзапросы · Работа с датами · Строковые функции · Условная логика · Retention-анализ
Открыть весь SQL-тренажёр (325 задач) →