Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как пронумеровать записи  [new]
мдаааааа
Guest
declare @t table(a int)
declare @r table(b int)

insert into @t values (1),(2),(3),(4),(5)
insert into @r values (1),(1),(2)

select * from @t t cross join @r r


Как в данном запросе пронумеровать группы записей чтобы результат был такой

num a b
----------- -----------
1 1 1
1 2 1
1 3 1
1 4 1
1 5 1
2 1 1
2 2 1
2 3 1
2 4 1
2 5 1
3 1 2
3 2 2
3 3 2
3 4 2
3 5 2

DENSE_RANK видимо, только какой ?
9 дек 13, 17:35    [15266270]     Ответить | Цитировать Сообщить модератору
 Re: Как пронумеровать записи  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31430
мдаааааа
чтобы результат был такой
Какой "такой", номера десяток? Тогда NTILE
9 дек 13, 17:41    [15266306]     Ответить | Цитировать Сообщить модератору
 Re: Как пронумеровать записи  [new]
aleks2
Guest
declare @t table(a int)
declare @r table(b int, n int identity)

insert into @t values (1),(2),(3),(4),(5)
insert into @r values (1),(1),(2)

select * from @t t cross join @r r
9 дек 13, 17:46    [15266338]     Ответить | Цитировать Сообщить модератору
 Re: Как пронумеровать записи  [new]
мдааааа
Guest
мдаааааа
чтобы результат был такой
Какой "такой", номера десяток? Тогда NTILE

Пронумеровать каждую группу из 1-го набора.


declare @t table(a int)
declare @r table(b int, n int identity)

insert into @t values (1),(2),(3),(4),(5)
insert into @r values (1),(1),(2)

select * from @t t cross join @r r

Поле IDENTITY мне создавать не нужно, но забавно, не знал что там можно записать.
9 дек 13, 17:54    [15266392]     Ответить | Цитировать Сообщить модератору
 Re: Как пронумеровать записи  [new]
мдааааа
Guest
declare @t table(a int)
declare @r table(b int)

insert into @t values (1),(2),(3),(4),(5)
insert into @r values (1),(1),(2)

;with cte as
(
select *,ROW_NUMBER() over(order by b) rn from @r
)

select * from @t t cross join cte r

Сделал так. Но, как я понимаю, это черезчур мудрено ?
9 дек 13, 17:59    [15266436]     Ответить | Цитировать Сообщить модератору
 Re: Как пронумеровать записи  [new]
aleks2
Guest
мдааааа
Поле IDENTITY мне создавать не нужно, но забавно, не знал что там можно записать.

1. Вам шашечки али ехать?
2. Ну, не ндравится identity - юзай row_number().
3. Или надо мордой ткнуть?
9 дек 13, 18:00    [15266439]     Ответить | Цитировать Сообщить модератору
 Re: Как пронумеровать записи  [new]
мдааааа
Guest
2aleks2 - Мне, пожалуй, скорее шашечки. Я выше написал как я сделал с row_number(), думал можно проще.
Куда мне это IDENTITY в готовой структуре базы данных вставить ?
9 дек 13, 18:04    [15266472]     Ответить | Цитировать Сообщить модератору
 Re: Как пронумеровать записи  [new]
мдааааа
Guest
select *,NTILE( (select COUNT(*) from @r)) over(order by b) from @t t cross join @r r

Или так, что тоже не лучше. :-(
9 дек 13, 18:20    [15266576]     Ответить | Цитировать Сообщить модератору
 Re: Как пронумеровать записи  [new]
Алексей Куренков
Member [заблокирован]

Откуда: Москва
Сообщений: 567
мдаааааа,

declare @t table(a int)
declare @r table(b int)

insert into @t values (1),(2),(3),(4),(5)
insert into @r values (1),(1),(2)

select *
from @t t cross join
(
	select b
		,ROW_NUMBER() OVER (ORDER BY b) num
	from @r
) r
9 дек 13, 18:32    [15266650]     Ответить | Цитировать Сообщить модератору
 Re: Как пронумеровать записи  [new]
мдааааа
Guest
Ну собственно где то я так и делал. Всем спасибо.
9 дек 13, 18:34    [15266660]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить