запросы на слияние oracle SQL - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь найти клиентов из таблицы SL_NEWCUST2015HTRETCUST, чтобы узнать, совершали ли они покупки в последующие 2016, 2017 и 2018 годы, присоединив их к основной таблице транзакции_детали. Я использую приведенный ниже запрос, в котором мне нужно менять год при каждом выполнении запроса, а также изменять количество транзакций на = 1, = 2, = 3, = 4,> = 5. Я подумал об использовании функции объединения всех, чтобы я запускал запрос один раз и получал данные за каждый год с клиентами, у которых есть только 1 транзакция, но t не работает:

SELECT COUNT(DISTINCT INDIVIDUAL_ID),
CASE WHEN COUNT_OF_TRANSACTIONS = 1 THEN '1'
WHEN COUNT_OF_TRANSACTIONS = 2 THEN '2'
WHEN COUNT_OF_TRANSACTIONS = 3 THEN '3'
WHEN COUNT_OF_TRANSACTIONS = 4 THEN '4'
WHEN COUNT_OF_TRANSACTIONS  >= 5 THEN '5+' END AS TXN_TYPE,
SUM(spend), 
SUM( COUNT_OF_TRANSACTIONS)

FROM (select distinct a.individual_id, count(distinct transaction_number) as COUNT_OF_TRANSACTIONS, sum(a.dollar_value_us) as spend from dm_owner.transaction_detail_mv a join SL_NEWCUST2015HTRETCUST b on a.individual_id = b.individual_id
where a.individual_id is not null
and COUNT_OF_TRANSACTIONS = 1 
and TYPE_OF_CUSTOMER = 'Returning Customers'
and trunc(txn_date) between '01-JAN-16' AND '31-DEC-16'
group by a.individual_id)

GROUP BY CASE WHEN COUNT_OF_TRANSACTIONS = 1 THEN '1'
WHEN COUNT_OF_TRANSACTIONS = 2 THEN '2'
WHEN COUNT_OF_TRANSACTIONS = 3 THEN '3'
WHEN COUNT_OF_TRANSACTIONS = 4 THEN '4'
WHEN COUNT_OF_TRANSACTIONS  >= 5 THEN '5+' END
ORDER BY 1 ASC

Я ищу, чтобы получить данные в следующем формате:

Формат

Меня не беспокоит получение данных для первых двух столбцов, но мне нужны данные из столбца 3 и далее.

Я создал скрипку sql с некоторыми примерами данных:

http://sqlfiddle.com/#! 4/10687/3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...