Допустим, есть таблицы order
и order_line
.Чтобы рассчитать доход для каждого клиента, я использую следующий запрос -
select o.customer_id, sum(o.amount) as revenue
from order o join order_line ol on o.id=ol.order_id
where ol.coupon_code is NULL
group by 1
Предположим, что coupon_code
доступен только на уровне строки заказа, поэтому нам нужно присоединиться к order_line
.Если в заказе может быть несколько позиций, сумма выручки будет подсчитана дважды за счет объединения.
Хотите узнать, есть ли способ рассчитать сумму amount
только для отдельных заказов.Это похоже на такой общий случай использования, что, вероятно, есть простое решение для него, но я не могу думать об этом.