Выручка по статусам заказов
// Условие
Посчитайте общую сумму заказов (amount) для каждого статуса (status). Выведите status и total_amount, отсортируйте по total_amount по убыванию.
// Таблицы
sandbox.orders
order_id | INT |
user_id | INT |
order_date | TIMESTAMP |
amount | NUMERIC(10,2) |
status | VARCHAR(20) |
delivery_days | INT |
promo_code | VARCHAR(20) |
// Что тренирует
GROUP BYSUMORDER BY
// Решение
Подсказка
GROUP BY status + SUM(amount). Не забудьте алиас AS total_amount.
Сначала попробуй сам → Показать решение
SELECT
status,
SUM(amount) AS total_amount
FROM sandbox.orders
GROUP BY status
ORDER BY total_amount DESC;
Базовая агрегация: группируем по status, суммируем amount. ORDER BY total_amount DESC ставит самый крупный статус первым. Обратите внимание: completed-заказы дают основную выручку (~72%), но cancelled и refunded тоже имеют amount — это важно понимать при расчёте «чистой» выручки.