>_ IzzyLab

Практическое задание

PostgreSQL: CTE (WITH)

средне

В базе shop через CTE (WITH) посчитай сумму заказов на клиента, затем выбери имя клиента с максимальной суммой и запиши в /root/top_customer.txt.

Что потренируешь:
  • cte
  • with
  • подзапрос
  • group by
  • postgresql

Разбор темы

CTE (WITH имя AS (...)) — именованный подзапрос, объявленный в начале запроса, на который дальше ссылаются как на таблицу. Формально это синтаксический сахар над вложенным подзапросом, но он делает многошаговые вычисления читаемыми: сначала считаешь промежуточный результат, потом работаешь с ним по имени. Типичный сценарий — на первом шаге агрегировать данные (GROUP BY плюс SUM), а в основном запросе присоединить справочник и отобрать нужную строку сортировкой с LIMIT. В финальном SELECT стоит оставлять ровно те столбцы, что требует условие.

Что проверяется

  1. выбран клиент с максимальной суммой

Как это выглядит