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

есть таблица

fruct, type
яблоки вкусные
яблоки невкусные
груши вкусные
груши вкусные

как добавить ID чтобы сделать такую таблицу
Id, fruct, Id2 , type
1 яблоки 1000 вкусные
1 яблоки 10000 невкусные
2 груши 1000 вкусные
2 груши 1000 вкусные
22 июл 14, 17:37    [16342755]     Ответить | Цитировать Сообщить модератору
 Re: денормализованная таблица  [new]
MedBrat
Member

Откуда: Санкт-Петербург
Сообщений: 348
лохнесс11
легкий вопрос

есть таблица

fruct, type
яблоки вкусные
яблоки невкусные
груши вкусные
груши вкусные

как добавить ID чтобы сделать такую таблицу
Id, fruct, Id2 , type
1 яблоки 1000 вкусные
1 яблоки 10000 невкусные
2 груши 1000 вкусные
2 груши 1000 вкусные


Внимание вопрос - зачем?
Создай отдельный столбец счетчика.
22 июл 14, 17:39    [16342775]     Ответить | Цитировать Сообщить модератору
 Re: денормализованная таблица  [new]
лохнесс11
Guest
MedBrat,

с использованием ROW_NUMBER() с PARTITION?
22 июл 14, 17:42    [16342804]     Ответить | Цитировать Сообщить модератору
 Re: денормализованная таблица  [new]
MedBrat
Member

Откуда: Санкт-Петербург
Сообщений: 348
лохнесс11
MedBrat,

с использованием ROW_NUMBER() с PARTITION?


Нет,
22 июл 14, 18:03    [16342995]     Ответить | Цитировать Сообщить модератору
 Re: денормализованная таблица  [new]
MedBrat
Member

Откуда: Санкт-Петербург
Сообщений: 348
лохнесс11
MedBrat,

с использованием ROW_NUMBER() с PARTITION?


Нет, SELECT ROW_NUMBER() OVER (ORDER BY Id)
22 июл 14, 18:03    [16343000]     Ответить | Цитировать Сообщить модератору
 Re: денормализованная таблица  [new]
_human
Member

Откуда:
Сообщений: 569
;with tbl(fruct, type) as 
(	select *
	from ( values
	--fruct, type
	('яблоки', 'вкусные'),
	('яблоки', 'невкусные'),
	('груши', 'вкусные'),
	('груши', 'вкусные') ) q (a,b)
)

select dense_rank() over(order by fruct desc) as id, fruct, type 
, case when type = 'невкусные' then 10000 else 1000 end as id2
, power(10, dense_rank() over(order by type) - 1)*1000  as id2
, '100'+REPLICATE('0', dense_rank() over(order by type)) as id2
from tbl
22 июл 14, 18:32    [16343162]     Ответить | Цитировать Сообщить модератору
 Re: денормализованная таблица  [new]
лохнесс11
Guest
_human,

dense_rank() это то что нужно.

Жаль что нельзя использовать 2 dense_rank() для одной таблицы
22 июл 14, 18:41    [16343193]     Ответить | Цитировать Сообщить модератору
 Re: денормализованная таблица  [new]
лохнесс11
Guest
лохнесс11
_human,

dense_rank() это то что нужно.

Жаль что нельзя использовать 2 dense_rank() для одной таблицы


Можно :)


Всем спасибо!
22 июл 14, 18:43    [16343198]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить