Как строки превращаются в итог по группам

Что такое группировка данных в отчёте: как из отдельных продаж получить итоги по магазинам и почему сначала нужно выбрать уровень детализации.

Записи с одинаковыми фигурами собраны в отдельные группы

Из чеков нужен короткий ответ

Руководитель видит сотни отдельных покупок, но хочет сравнить магазины за день. Ему не нужен список всех чеков в итоговой таблице. Нужна одна строка на магазин с суммой продаж и числом покупок. Переход от подробных записей к таким строкам и есть смысл группировки.

Признак группы отвечает на вопрос «по чему объединяем»: по магазину, дате или категории. Показатель отвечает на вопрос «что считаем внутри группы»: сумму, количество, минимум или другое значение. Эти решения связаны, но не заменяют друг друга.

Как меняется уровень детализации

В условном примере у магазина «Север» три продажи: 100, 200 и 300 рублей. У магазина «Юг» — две: 150 и 250 рублей. После группировки по магазину остаются две строки: для «Севера» сумма 600 и три покупки, для «Юга» сумма 400 и две покупки. Общий итог — 1000 рублей и пять покупок.

Если сгруппировать те же записи по дню, получится уже другая таблица. Если одновременно по дню и магазину — столько строк, сколько сочетаний этих признаков встретилось в данных. В документации PostgreSQL о группировке описано, как строки с одинаковыми значениями выбранных признаков образуют группы.

Группа не создаёт недостающие продажи

Группировка меняет представление, а не исправляет источник. Если в исходном наборе дважды записан один чек, сумма группы тоже будет завышена. Если часть покупок ещё не поступила, итог будет неполным. Поэтому перед сравнением отделов полезно проверить период, источник и смысл одной строки.

Здесь легко спутать две задачи: выбрать группу и убедиться, что строки корректны. Например, один заказ может содержать несколько товарных позиций. Сумма по позициям и число заказов относятся к разным единицам учёта. Их можно показывать вместе, но считать следует по понятным правилам.

Когда сумма групп не равна ожидаемому итогу

Для обычной суммы непересекающихся групп всё просто: суммы магазинов складываются в общий итог. Но не каждый показатель так устроен. Уникальный клиент мог купить в двух магазинах, поэтому сумма числа клиентов по магазинам может быть больше числа клиентов по всей сети. Этот случай отдельно объяснён в статье про уникальных клиентов и общий итог.

Средние значения тоже нельзя бездумно складывать или усреднять между группами разного размера. При работе с ними учитывают количество исходных наблюдений; подробнее — в материале почему нельзя усреднять средние. Эти ограничения относятся к смыслу показателя, а не к ошибке механизма группировки.

Что согласовать перед отчётом

Сформулируйте одну строку результата простыми словами: «один магазин за один день» или «одна категория за месяц». Затем уточните, какие записи входят в период, что означает покупка и какой показатель нужен. Только после этого выбирайте способ сводки и сверяйте несколько строк вручную на небольшом примере.

Документация PostgreSQL перечисляет разные способы получения итоговых значений, однако для чтения отчёта важнее понимать их смысл. Если хотите изучить работу с таблицами и отчётами глубже, посмотрите курс «SQL инженер». Эта статья объясняет принцип без запросов и программных примеров.

Зачем оставлять путь к подробностям

Короткий сводный отчёт удобен для сравнения, но из одной итоговой строки нельзя понять, какие именно покупки её составили. Если руководитель заметит резкий рост, ему понадобится возможность перейти к исходным операциям или хотя бы проверить несколько примеров. Поэтому сводка и подробный набор дополняют друг друга.

Важно записать, по какому периоду и правилам получен итог. Иначе две таблицы с одинаковыми названиями магазинов могут скрывать разные даты, валюты или статусы заказов. Простая подпись к отчёту иногда предотвращает долгий спор о якобы неправильной сумме.

Курс по теме

Подходящая программа для дальнейшего изучения темы: SQL инженер.

SQL инженер
Курс
Доступ сразу
SQL инженер

SQL инженер — это специалист, который работает с базами данных, разрабатывает запросы, оптимизирует хранение данных и обеспечивает эффективную работу с информацией в компаниях.

С нуля до junior
Теория и практика
Диплом по окончании
500
₽/мес
УЗНАТЬ ПОДРОБНЕЕ

Источники

Читайте также

Обучить команду или нанять специалиста по данным: как выбрать
47

Обучить команду или нанять специалиста по данным: как выбрать

Как руководителю определить, какие навыки развивать внутри команды, когда нужна новая роль и почему обучение и найм часто дополняют друг друга.
Вертикальное и горизонтальное масштабирование данных: в чём разница
46

Вертикальное и горизонтальное масштабирование данных: в чём разница

Когда системе добавляют мощность одного сервера, когда делят работу между несколькими и почему увеличение ресурсов само по себе не решает любую проблему.
Журнал изменений данных: как выяснить, кто и когда изменил набор
42

Журнал изменений данных: как выяснить, кто и когда изменил набор

Что можно узнать из журнала действий с данными, как он помогает разбирать ошибки и почему его записи не показывают всю историю сами по себе.

Занятия проходят
в Нова Дата СДО

Вебинары, практика и общение с преподавателем — в одном окне браузера.

Посмотреть интерфейс платформы
Календарь обучения в Нова Дата СДО
Курсы студента в Нова Дата СДО
Редактор кода для практики в Нова Дата СДО
Вебинары и расписание Ваши курсы Код в браузере
Нова Дата СДО — в реестре российского ПОРеестровая запись № 34931
Заявка отправлена
Отправим вам подборку курсов в течение 5 минут. С вами также свяжется наш специалист и даст карьерную консультацию.
Персональный промокод
На курс «Инженер по парсингу данных»
Введите код при оплате, чтобы применить скидку к программе.