Сбор данных изменений - получение только отдельных последних изменений - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь найти все отчетливые и последние изменения только из таблицы сбора данных об определенных изменениях.Вот снимок стола.enter image description here

Я пытался использовать этот запрос:

select DISTINCT StudentUSI, sys.fn_cdc_map_lsn_to_time(__$start_lsn) TransactionTime, __$operation Operation, LastModifiedDate 
from cdc.Student_CT
where __$operation in (1,2,4)
ORDER BY StudentUSI;

Но возвращаемый результат:

enter image description here

Также, если я пытаюсь использовать GROOUP BY, он говорит:

Столбец 'cdc.Student_CT .__ $ start_lsn' недопустим в списке выбора, поскольку он не содержитсялибо в статистической функции, либо в предложении GROUP BY.

Есть ли другой способ, которым я мог бы просто получить самое последнее изменение в отношении значения StudentUSI?Спасибо!

1 Ответ

0 голосов
/ 17 сентября 2018

Использовать row_number ()

select * from 
(select DISTINCT StudentUSI, sys.fn_cdc_map_lsn_to_time(__$start_lsn) TransactionTime, __$operation Operation, LastModifiedDate ,row_number() over(partition by StudentUSI order by LastModifiedDate desc) as rn
from cdc.Student_CT
where __$operation in (1,2,4))a where rn=1
...