2016-03-28 2 views
1

У меня есть следующие таблицыКак сбросить DENSE_RANK

Id, Cat1, Cat2, колу, ColB,

1,1,1 ,,

2,1,1 ,,

3,1,2 ,,

4,1,3 ,,

5,2,11 ,,

6,2,12 ,,

7,2,12 ,,

Мне нужно добавить уникальный порядковый номер в группировке столбец CAT2, начиная с 1, но он должен сбросить обратно 1, когда Cat1 изменяет

Мой вывод должен быть

Роу, Id, Cat1, Cat2, колу, ColB,

1,1,1,1 ,,

1,2,1,1 ,,

2,3,1,2 ,,

3,4,1,3 ,,

1,5,2,11 ,,

2,6,2,12 ,,

2,7,2,12 ,,

DENSE_RANK() работает, чтобы дать уникальное значение, например.

Row= DENSE_RANK() OVER (ORDER BY Cat2) 

, но мне нужно, чтобы сбросить себя на основе другого столбца Cat1

+0

'Row = DENSE_RANK() OVER (ORDER BY Cat2)' должен выдавать желаемый результат. Не так ли? Какой результат вы получаете с помощью 'dense_rank()'? – AKS

ответ

3

Используйте PARTITION BY статьи на Cat1:

Row = DENSE_RANK() OVER (PARTITION BY Cat1 ORDER BY Cat2) 

ограждающей пунктом будет разметить DENSE_RANK() первый на основе на вашем Cat1, прежде чем оценивать их плотно, что именно то, что вам нужно.

Смежные вопросы