Я пытаюсь получить количество уникальных элементов в столбце с указанным идентификационным номером и датой в течение последних 12 месяцев. Мне нужно повторить это для каждой строки в моей таблице.
Я использую комбинацию dens_rank () и (Over partition by, чтобы вычислить количество уникальных элементов, но я не смог успешно добавить в фильтр даты. Результаты, которые я вижу до сих пор, показывают количество уникальный Unique_Code для каждой строки с одинаковым идентификатором независимо от даты.
select ID,
Unique_Code,
Transaction_Date,
DATEADD(Month, -12, Transaction_Date) as L12M,
dense_rank() over (partition by ID order by Transaction_Date, Unique_Code) as [Unique_Count]
from (select *, (case when datediff(day, lag(Transaction_Date,1,Transaction_Date) over (partition by Unique_Code order by ID), Transaction_Date)
<= 1
then 1 else 2
end) as grp
from datatable1)
Я ожидаю, что в результатах будет показано количество уникальных элементов из столбца unique_code для идентификатора в строке, и где предыдущие записи в этом же идентификаторе соответствуют дате транзакции и дате транзакции - 12 месяцев. Сейчас я вижу количество уникальных элементов из столбца unique_code для каждой записи с одинаковым идентификатором независимо от диапазона дат.