Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Несколько вопросов  [new]
СтраждущийТоварищЪ
Guest
1) Как "донумеровать" последовательность


Так не дает

select (select max(rn) from rez) + 1 as cnt
UNION ALL
select cnt + 1 from cte where cnt + 1 < (select (max(rn)/4+1)*4 from rez)


Сделал так

with maxrn as ( select max(rn) s from rez)
,cte as
(

select (select s from maxrn) + 1 as cnt, 0 as col
UNION ALL
select cnt + 1, 0 as col from cte where cnt + 1 <= (select (s/4+1)*4 from maxrn)
)



Думаю можно проще.

2 вопрос
Как проще всего пронумеровать n элементов последовательности. Например каждые 5.
Как проще всего пронумеровать последовательность нарастающим итогом (1 значение следующие 2 следующие 3 итд)


Спасибо !
13 ноя 13, 14:28    [15121459]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов  [new]
Гость333
Member

Откуда:
Сообщений: 3683
СтраждущийТоварищЪ
Как проще всего пронумеровать n элементов последовательности. Например каждые 5.
Как проще всего пронумеровать последовательность нарастающим итогом (1 значение следующие 2 следующие 3 итд)

Приведите примеры того, что вам нужно.
13 ноя 13, 14:49    [15121681]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов  [new]
o-o
Guest
СтраждущийТоварищЪ,
1: не понимаю вообще, чего надо.
2: тоже не понимаю, но вот всякие нумерации "каждых трех"
declare @t table (id int)
insert into @t values
(2), (10), (13), (17), (20), (22), (29)

select *,
       ROW_NUMBER() over (order by id),
       (ROW_NUMBER() over (order by id) - 1) / 3,       
       (ROW_NUMBER() over (order by id) - 1) % 3 + 1
from @t
-----------------------------------------
id	
2	1	0	1
10	2	0	2
13	3	0	3
17	4	1	1
20	5	1	2
22	6	1	3
29	7	2	1
13 ноя 13, 14:56    [15121784]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить