У меня есть две таблицы со столбцами, как указано ниже:
ЗАКАЗЧИК таблица как DIM_CUSTOMER :
ID_CUSTOMER, CUSTOMER_NAME
СДЕЛКА таблица как FACT_TRANSACTION :
ID_CUSTOMER, DATE, TOTAL_PRICE, QUANTITY
Постановка проблемы
Найти 100 лучших клиентов и их средние расходы, среднее количество по каждому году. Также найдите процент изменения в их расходах.
Мой подход:
SELECT TOP 100
YEAR(FT.DATE) AS [YEAR],
FT.ID_CUSTOMER AS [CUSTOMER NAME],
FT.TOTAL_PRICE AS [TOTAL AMT],
AVG(FT.TOTAL_PRICE) AS [AVG SPEND],
AVG(FT.QUANTITY) AS [AVG QUANTITY]
FROM
FACT_TRANSACTIONS FT
INNER JOIN
DIM_CUSTOMER DC ON FT.ID_CUSTOMER = DC.ID_CUSTOMER
GROUP BY
FT.DATE, FT.ID_CUSTOMER, FT.TOTAL_PRICE
ORDER BY
3 DESC
Это приводит к 100 лучших клиентов в зависимости от их использования.
Теперь мне нужно определить процентное изменение их расходов в ГОДУ.
Как я могу это сделать? Вероятно, использование опции PIVOT здесь поможет, но я не уверен.