SQLАгрегация и GROUP BYEasyБесплатно

Выручка по статусам заказов

// Условие

Посчитайте общую сумму заказов (amount) для каждого статуса (status). Выведите status и total_amount, отсортируйте по total_amount по убыванию.

// Таблицы

sandbox.orders
order_idINT
user_idINT
order_dateTIMESTAMP
amountNUMERIC(10,2)
statusVARCHAR(20)
delivery_daysINT
promo_codeVARCHAR(20)

// Что тренирует

GROUP BYSUMORDER BY
▶ Решить в SQL-песочнице

// Решение

Подсказка

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 — это важно понимать при расчёте «чистой» выручки.

// Похожие задачи

// Разобраться в теме

→ GROUP BY и HAVING в SQL