powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нумерация
6 сообщений из 6, страница 1 из 1
Нумерация
    #39698628
Васелина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица nop-номер операции , koduh-код участка

нужно проставить нумерацию по коду участка, в последовательности от номера операции


CREATE TABLE t ( nop int,koduh int, kodop int)

insert into t
select 1, 17, 5
union
select 2, 17, 4
union
select 3, 15, 25
union
select 5, 17, 82
union
select 6, 15, 48

должно получится

nop koduh op номер нужный
1, 17, 5 1
2, 17, 4 1
3, 15, 25 2
5, 17, 82 3
6, 15, 48 4
...
Рейтинг: 0 / 0
Нумерация
    #39698656
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Васелина,

STFF start_of_group
...
Рейтинг: 0 / 0
Нумерация
    #39698663
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Васелина,

и, кстати, не далее, чем по весне вы задавали ровно такой же вопрос . более того, мною же вам и был дан правильный (с ваших слов) ответ ;)
...
Рейтинг: 0 / 0
Нумерация
    #39698826
Васелина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна, Ваш ответ :
"select nop,koduch , row_number() over(order by nop) - row_number() over(partition by koduch order by nop) as x_group_id
from zar order by nop"
выдает неправильный результат:

nop koduch x_group_id
1 17 0
2 17 0
3 15 2
5 17 1
6 15 3

3 и 5 операции.
...
Рейтинг: 0 / 0
Нумерация
    #39698835
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВаселинаЩукина Анна, Ваш ответ :
"select nop,koduch , row_number() over(order by nop) - row_number() over(partition by koduch order by nop) as x_group_id
from zar order by nop"
выдает неправильный результат:

nop koduch x_group_id
1 17 0
2 17 0
3 15 2
5 17 1
6 15 3

3 и 5 операции.
Васелина, всё потому что стоило для начала понять, в чем суть предложенного решения, а потом уже браться его дорабатывать.
Код: sql
1.
2.
3.
4.
5.
6.
7.
select nop,koduch,kodop,dense_rank()over(order by mnp) r 
  from (select *, min(nop)over(partition by koduch,x_group_id)mnp
          from (select nop,koduch,kodop,row_number() over(order by nop) - row_number() over(partition by koduch order by nop) as x_group_id
                  from #t
               )x
       )y
 order by nop
...
Рейтинг: 0 / 0
Нумерация
    #39698841
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Васелина,

тогда - изучаем предложенный выше поиск ...

или если лениво, сразу смотрим результат :)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with t ( nop, koduch, kodop) as(
select 1,	17, 5
union 
select 2,	17, 4
union 
select	3,	15, 25	
union 
select	5,	17, 82	
union 
select	6,	15, 48
)

select nop, koduch, kodop, sum(start_of_group) over(order by nop) as xRank
  from (
         select nop, koduch, kodop, case koduch when lag(koduch) over(order by nop) then 0 else 1 end as start_of_group
           from t
       ) v
 order by nop

...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нумерация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]