Средний чек за период: как усреднение дневных значений меняет результат В дневном отчёте уже есть средний чек. Можно...
Средний чек за период: как усреднение дневных значений меняет результат
В дневном отчёте уже есть средний чек. Можно ли получить показатель за месяц, просто усреднив значения по дням?
Разберём на условном примере за два дня. Учитываем только оплаченные заказы в рублях, без возвратов. Каждому заказу соответствует одна итоговая сумма.
1 ноября:
Оплаченных заказов — 1.
Общая сумма заказов — 1 000 ₽.
Средний чек — 1 000 ₽.
2 ноября:
Оплаченных заказов — 9.
Общая сумма заказов — 900 ₽.
Средний чек — 100 ₽.
Если взять среднее арифметическое двух дневных значений, получим:
(1 000 + 100) / 2 = 550 ₽.
Но за весь период покупатели оплатили 10 заказов на общую сумму 1 900 ₽.
Правильный средний чек за период:
1 900 / 10 = 190 ₽.
Разница существенная: 550 ₽ против 190 ₽.
Почему результаты отличаются? При усреднении дневных показателей каждый день получает одинаковый вес. День с одним заказом влияет на результат так же сильно, как день с девятью.
Оба результата математически корректны, но описывают разные показатели. 550 ₽ — среднее арифметическое дневных средних чеков. 190 ₽ — средний чек по всем оплаченным заказам за период.
Если нужен второй показатель, простое усреднение дневных значений может дать неверный ответ. Иногда результаты совпадут, например при одинаковом количестве заказов каждый день. Но рассчитывать на такое совпадение нельзя.
В SQL эта ошибка возникает, когда сначала считают средний чек по дням, а затем применяют AVG к полученному столбцу. Функция усредняет дневные значения, не учитывая, сколько заказов стоит за каждым из них.