Я пытаюсь найти клиентов из таблицы 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