Подсчёт среднего чека по месяцам за 2019 год

Отфильтруйте даты полуинтервалом [2019-01-01, 2020-01-01), сгруппируйте по месяцу и примените AVG(order_values). Убедитесь, что одна строка соответствует одному заказу.

Короткий ответ

Что ответить на собеседовании

Отфильтруйте даты полуинтервалом [2019-01-01, 2020-01-01), сгруппируйте по месяцу и примените AVG(order_values). Убедитесь, что одна строка соответствует одному заказу.

Подробный разбор

Ответ с пояснениями

Условие

У тебя есть таблица с данными о заказах за 2019‑2020 годы. Требуется вычислить среднее значение заказа за 2019 год, разбив его по месяцам.


 uuids — ID клиента
 order_dates — дата заказа
 orders — ID заказа
 order_values — сумма заказа
 order_sources — платформа
 mail_ids — Номер магазина, где размещен заказ

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

Ответ

Отфильтруйте даты полуинтервалом [2019-01-01, 2020-01-01), сгруппируйте по месяцу и примените AVG(order_values). Убедитесь, что одна строка соответствует одному заказу.

Пример PostgreSQL для условной таблицы order_data:

SELECT date_trunc('month', order_dates)::date AS month,
       AVG(order_values) AS average_order_value
FROM order_data
WHERE order_dates >= DATE '2019-01-01'
  AND order_dates < DATE '2020-01-01'
GROUP BY date_trunc('month', order_dates)::date
ORDER BY month;

Имя таблицы замените фактическим. Если строки представляют позиции заказа или дубли событий, сначала агрегируйте/дедуплицируйте по ID заказа, иначе средний чек исказится. AVG игнорирует NULL. Для timestamptz задайте бизнес-часовой пояс. Месяцы без заказов не появятся без календарной таблицы или generate_series.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее