пытаясь найти клиентов и их общий объем продаж, которые делали покупки как для бренда1, так и для бренда2 - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь найти покупателя, который купил brand1 и brand 2, а также общую сумму потраченной стоимости в долларах. Я сделал образец базы данных, в которой есть все детали. Я могу получить клиентов, которые купили оба бренда, но сумма в долларах должна равняться сумме расходов в долларах на бренд 1 и бренд 2.

это ссылка на образец базы данных:

https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=8a478b5743099ea5c76acd08e22c0c53

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Если я правильно понимаю, вы можете просто использовать агрегацию с соответствующим having предложением:

select individual_id, sum(dollar_value_us)
from transaction_detail_mv
group by individual_id
having sum( case when brand_org_code = 'BRAND1' then 1 else 0 end) > 0 and
       sum( case when brand_org_code = 'BRAND2' then 1 else 0 end) > 0 
1 голос
/ 19 марта 2019

использовать связанный подзапрос

    select  individual_id, SUM (dollar_value_US) from 
transaction_detail_mv t1
where t1.brand_org_code IN ('BRAND1','BRAND2')

AND  EXISTS  (SELECT 1  
FROM TRANSACTION_DETAIL_MV t2 WHERE t1.individual_id=t2.individual_id
      and BRAND_ORG_CODE = 'BRAND2')
GROUP BY 
individual_id

INDIVIDUAL_ID   SUM(DOLLAR_VALUE_US)
  1                40
  2                22
  5                22
...