Я хочу создать условное поле int с именем Sequence для каждой группы идентификаторов.
Значение 1 присваивается Sequence для первого появления условия, в противном случае увеличивается последний счет на 1. Существует конечный список значений для условия поля, как показано ниже.
Для новой группы ID Sequence должен инициализироваться и начинать отсчет с 1.
| Я БЫ | Дата | Состояние | последовательность |
|---|---|---|---|
| 01 | 01 июн 14 | АААААААА | 1 |
| 01 | 02 июн 14 | АААААААА | 2 |
| 01 | 03 июн 14 | ББББББББ | 1 |
| 01 | 04 июн 14 | ББББББББ | 2 |
| 01 | 05 июн 14 | АААААААА | 3 |
| 01 | 06 июн 14 | ББББББББ | 3 |
| 01 | 07 июн 14 | ЭЭЭЭЭЭЭ | 1 |
| 02 | 01 июн 14 | АААААААА | 1 |
| 02 | 02 июн 14 | CCCCCCCC | 1 |
| 02 | 03 июн 14 | CCCCCCCC | 2 |
| 02 | 04 июн 14 | ББББББББ | 1 |
| 02 | 05 июн 14 | АААААААА | 2 |
| 02 | 06 июн 14 | ББББББББ | 2 |
| 03 | 01 июн 14 | FFFFFFFF | 1 |
| 03 | 02 июн 14 | АААААААА | 1 |
| 03 | 03 июн 14 | АААААААА | 2 |
| 03 | 04 июн 14 | CCCCCCCC | 1 |
Решение проблемы
Я думаю, dense_rank()должен сделать трюк.
select
ID,
[Date],
Condition,
dense_RANK() OVER(PARTITION by ID ORDER BY [Date]) as Seq
from Yourtable
Комментариев нет:
Отправить комментарий