Предположим, у меня есть следующие записи:TSQL граф Последовательные записи
KeyCol ColA ColB
------------------------
1 1 A
2 2 B
3 2 B
4 2 C
5 2 B
6 1 A
7 2 B
8 2 B
Я хочу подсчитывать последовательных записей, имеющих одинаковые значения в колой и ColB с этим результатом
Col A ColB Start Count
---------------------------------
1 A 1 1
2 B 2 2
2 C 4 1
2 B 5 1
1 A 6 1
2 B 7 2
Там много схожего вопросы по группировке и подсчету, но я не понимаю, как перевести его на этот. Особенно многие другие примеры не имеют явного ключевого столбца.
Я пытался использовать функцию секционирования для подсчета числа последовательных записей и взять его оттуда:
SELECT KeyCol, ColA, ColB
,ROW_NUMBER() OVER
( PARTITION
BY ColA, ColB
ORDER BY KeyCol
) as RowNo
FROM MyTable
Однако, это производит этот результат:
KeyCol Col A ColB RowNo
---------------------------------
1 1 A 1
2 2 B 1
3 2 B 2
4 2 C 1
5 2 B 3 (Needs to be 1)
6 1 A 2 (Needs to be 1)
7 2 B 4 (Needs to be 1)
8 2 B 5 (Needs to be 2)
Как вы можете видеть , число строк увеличивается для всех одинаковых ColA, ColB, даже если записи не являются последовательными.
спасибо!
Вы что-то пробовали? Если у вас есть, отредактируйте запрос в свой вопрос. –
Привет, спасибо, за ваш комментарий. Я просто добавил запрос, который я попробовал. – Roeland