Короткий ответ Нужно сгруппировать таблицу заказов по статусу и в одном SELECT перечислить сразу несколько агрегатных функций — COUNT(*) и SUM(amount) — они вычисляются параллельно для каждой группы. Как это работает подробнее при наличии GROUP BY status СУБД формирует группы строк с одинаковым статусом, а затем для каждой группы независимо вычисляет все агрегатные функции, указанные в SELECT; это не требует отдельных проходов по данным для каждой метрики. Пример кода Что использовать на практике На практике: такой подход эффективнее, чем писать два отдельных запроса и затем вручную сопоставлять результаты — СУБД читает таблицу один раз и сразу считает всё необходимое. Это базовый паттерн для большинства сводных отчётов. Результат: Результат — по одной строке на каждый статус с двумя метриками. Проверка: сумма orders_cnt по всем строкам должна равняться SELECT COUNT(*) FROM orders. Подводные камни Частая ошибка: пытаются добавить третью метрику с другой логикой фильтрации (например, «выручка только по заказам