В КУРСЕ?

Разбираемся в теме

После объединения таблиц выручка выросла: где аналитик данных ищет ошибку?

Аналитик может написать корректный с точки зрения синтаксиса запрос и получить неправильный бизнес-результат. Частая причина появляется при объединении таблиц с разной детализацией. Заказ занимает одну строку, а его товарные позиции несколько. Если после соединения без проверки сложить сумму заказа, она может повториться. Рассмотрим маленький пример, в котором ошибка заметна вручную и помогает выстроить порядок проверки больших отчётов.

Назовите смысл одной строки

В таблице заказов одна строка соответствует одному заказу, а поле суммы описывает весь заказ. В таблице позиций одна строка соответствует отдельной позиции. Это разные уровни детализации. До объединения полезно записать, какой ключ уникален в каждом наборе и допускаются ли повторения. Название столбца не отвечает на эти вопросы автоматически. Если данные пришли из разных источников, отдельно проверяют также период, статусы и правила формирования записей. Иначе технически успешное соединение может объединить несопоставимые события.

Проследите размножение строки

Пусть заказы А, Б и В имеют суммы 100, 100 и 200 условных единиц. У А две позиции, у Б одна, а для В позиции в выгрузке отсутствуют. Левое соединение по номеру заказа сохранит все заказы. Для А появятся две строки, для Б одна, для В одна с отсутствующими данными позиции. Всего получится четыре строки. Сумма поля заказа теперь равна 500, хотя исходный итог составляет 400. Запрос не создавал денег: он повторно учёл сумму заказа А.

Удаление одинаковых сумм не исправляет смысл

Может показаться, что достаточно суммировать только уникальные значения суммы. Но у разных заказов А и Б одинаковая сумма 100, и оба должны учитываться. Сложение уникальных значений 100 и 200 даст 300, что тоже неверно. Исправление должно опираться на идентичность заказа, а не на совпадение числа. Возможный подход состоит в предварительном приведении данных позиций к одной строке на заказ или в отдельном расчёте показателя из таблицы заказов. Выбор зависит от вопроса отчёта.

Сохраняйте контрольные показатели

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

Попробуйте на практике

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

  1. Создайте список заказов: А на 100, Б на 100 и В на 200. Посчитайте исходное количество заказов и общую сумму.
  2. Создайте список позиций: А1 и А2 относятся к А, Б1 относится к Б. Для В строк в этом списке нет.
  3. Выпишите результат левого соединения по заказу, сохранив В. Повторите сумму заказа в каждой полученной строке и сложите значения.
  4. Отдельно сложите уникальные числовые суммы. Сравните результат с исходным итогом и объясните, почему одинаковая стоимость не означает один заказ.
  5. Предложите способ получить итог по заказам без повторного учёта. Запишите контрольные значения и отдельный вопрос о недостающих позициях В.

Как проверить результат. Исходно три заказа на 400 единиц. После соединения четыре строки и ошибочная сумма 500; сумма уникальных чисел равна 300. Правильный итог сохраняет каждый заказ один раз и остаётся равным 400.

Частые вопросы

Всегда ли нужно избегать связи один ко многим?

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

Поможет ли красивый график заметить эту ошибку?

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

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

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

Зарегистрироваться
← К списку материалов