SQL: Взвешенное среднее и агрегация показателей — Общий средний чек через агрегаты категорий
Практическая задача по SQL на тему «Взвешенное среднее и агрегация показателей». В условии приведены схема таблиц, ограничения данных, имена столбцов результата и порядок сортировки. Напишите один SELECT или WITH-запрос для SQLite. Перед проверкой продумайте пустой результат, повторяющиеся строки и границы диапазонов, если они встречаются в условии. Проверяется результат запроса, поэтому допустима эквивалентная реализация. Сначала решите задачу самостоятельно; продолжение практики доступно в полном курсе продвинутого SQL.
Общий средний чек через агрегаты категорий
Что уже дано
Уже заполнена orders(order_id INTEGER PRIMARY KEY,category_id INTEGER NOT NULL,amount INTEGER NOT NULL). ID положительные INTEGER; order_id уникален. amount — целые копейки от 0 до 2 000 000 000 без NULL. В таблице от 0 до 1000 строк; суммы помещаются в 64-битный INTEGER. Разные заказы с одинаковой суммой учитываются отдельно.
Что нужно сделать
Руководителю нужен общий средний чек по всем заказам компании, независимо от категории. Каждый заказ должен иметь одинаковый вес в этом показателе, даже если число заказов разных категорий сильно различается. Верните средний размер заказа в копейках, округлённый до двух знаков после запятой.
Ввод и вывод
Отправьте один SELECT или WITH-запрос; stdin и печать не используются. Ровно 1 столбцов в указанном порядке и с этими именами: overall_avg_check. overall_avg_check — REAL либо NULL. Сортировка: единственная строка. Даже пустая orders даёт одну строку; при отсутствии заказов показатель NULL, а не 0. В тестовых результатах разделитель |, NULL — пустое поле. Допускается любой эквивалентный запрос.
Пример
- Подготовка данных
INSERT INTO orders VALUES (1,1,1000),(2,2,100),(3,2,100),(4,2,100),(5,2,100),(6,2,100),(7,2,100),(8,2,100),(9,2,100),(10,2,100);
- Вывод
190.0
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- SQL: Агрегация, оконные вычисления и фильтрация — Категории-лидеры и доля в продажах
- SQL: Календарная таблица и пропущенные даты — Непрерывный отчёт о звонках
- SQL: Коррелированные подзапросы и EXISTS — Клиенты с завершённым заказом от 1000
- SQL: RFM-анализ на дату среза — RFM и покупки за последний месяц
- SQL: Выделение пользовательских сессий — Номер сессии и позиция клика
- SQL: Обход дерева: глубина и путь — Пути, корни и листья всего каталога
