Как правильно учесть возврат заказов в моих совокупных SQL запросах? - PullRequest
0 голосов
/ 11 января 2020

У меня есть таблица, подобная приведенной ниже.

Моя цель - разработать запрос, который возвращает однократных покупателей и повторных покупателей, а также их общую сумму для общих расходов в долларах и среднего значения. потраченный доллар (на одного клиента).

Однако я борюсь за то, чтобы учесть доходность.

Я хочу знать, как правильно учесть тот факт, что некоторые заказы были возвращены, поэтому я не буду считать их вторым заказом от клиента.

Я разработал запрос ниже но это будет считать заказ и его возврат как два, и это не то, что мне нужно (например, Клиент 1 будет считаться двухразовым покупателем, даже если он покупает один раз, а затем возвращается).

Пожалуйста, посмотрите запрос ниже, чем я использовал для расчета повторного покупателя (более одного раза).

enter image description here

select 
    count(*) as number_of_repeat_shoppers, 
    sum(total) as total_revenue_from_repeat_shoppers ,
    avg(total) as average_revenue_from_repeat_shopper
from 
    (Select customer_id, sum(total_cost) as total
     from ORDERS
     group by customer_id
     having count(DATE) > 1)

1 Ответ

1 голос
/ 11 января 2020

Если вам нужна полная информация о магазине:

With RepeatedShoppers (
    select -- Filter Repeated Shoppers List
        customer_id
    from ORDERS
    where Quantity <> -1
    group by customer_id
    having count(DATE) > 1
)
select -- Total Info of Orders [Filtered Shoppers]
    count(DATE) as number_of_repeat_shoppers,
    sum(total_cost) as total_revenue_from_repeat_shoppers ,
    avg(total_cost) as average_revenue_from_repeat_shopper
from ORDERS
where Quantity <> -1 and customer_id in (Select customer_id from RepeatedShoppers)  

И, если вам нужна информация о магазине на покупателя:

select -- Repeated Shoppers Info
    customer_id,
    count(DATE) as number_of_shop_of_this_shopper,
    sum(total_cost) as total_revenue_from_this_shopper,
    avg(total_cost) as average_revenue_from_this_shopper
from ORDERS
where Quantity <> -1
group by customer_id
having count(DATE) > 1 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...