>_ IzzyLab

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

PostgreSQL: GROUP BY и HAVING

средне

В базе shop посчитай суммарную сумму заказов по каждому клиенту, оставь только клиентов с суммой больше 200, и выведи имя|сумма по убыванию суммы в /root/big_spenders.txt.

Что потренируешь:
  • агрегация
  • group by
  • having
  • sum
  • postgresql

Разбор темы

Агрегация — это GROUP BY плюс агрегатная функция вроде SUM: группировка схлопывает строки по значению столбца, а функция считает одно число на группу. Ключевая тонкость — где ставить фильтр по порогу: WHERE отсекает исходные строки до группировки и не умеет работать с ещё не посчитанным агрегатом, а условие по результату агрегата пишут в HAVING, которое выполняется уже после GROUP BY. Чтобы вывести и имя, и сумму, таблицы предварительно соединяют через JOIN. Направление сортировки задаётся в ORDER BY.

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

  1. клиенты с суммой > 200 по убыванию

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