Сумма отличается в SQL - PullRequest
       4

Сумма отличается в SQL

0 голосов
/ 06 февраля 2019

Допустим, есть таблицы 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 только для отдельных заказов.Это похоже на такой общий случай использования, что, вероятно, есть простое решение для него, но я не могу думать об этом.

1 Ответ

0 голосов
/ 06 февраля 2019

использовать подзапрос

select o.customer_id, sum(o.amount) as revenue
from "order" o join 
( select  distinct coupon_code,order_id from order_line
) ol on o.id=ol.order_id
where ol.coupon_code is NULL
group by o.customer_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...