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

Откуда:
Сообщений: 132
Добрый день,
есть ли алтернатива следующему запросу без row_number() over(partition by :

select *,row_number() over(partition by [Tag Name],[PRD] order by [Start Time]) num
from [PRD Project].[Data].[efan1]

Спасибо
21 сен 16, 09:41    [19690293]     Ответить | Цитировать Сообщить модератору
 Re: алтернатива row_number() over(partition by  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
есть описанна в FAQ
21 сен 16, 09:44    [19690311]     Ответить | Цитировать Сообщить модератору
 Re: алтернатива row_number() over(partition by  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Если одинаковое [Start Time] повторяется несколько раз для одинаковых пар ([Tag Name],[PRD]), то предвижу небольшие затруднения.
А так, подсчитать количество записей с меньшим [Start Time], чем в текущей, разве проблема?
21 сен 16, 11:32    [19690884]     Ответить | Цитировать Сообщить модератору
 Re: алтернатива row_number() over(partition by  [new]
sakot
Member

Откуда:
Сообщений: 132
iap,

не повторяется, пытался делать с group by [Tag Name],[PRD] order by [Start Time])
21 сен 16, 11:48    [19691024]     Ответить | Цитировать Сообщить модератору
 Re: алтернатива row_number() over(partition by  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
sakot
iap,

не повторяется, пытался делать с group by [Tag Name],[PRD] order by [Start Time])
SELECT E.*, Num.N
FROM [PRD Project].[Data].[efan1] E
CROSS APPLY
(
 SELECT COUNT(*)
 FROM [PRD Project].[Data].[efan1] EE
 WHERE EE.[Tag Name]=E.[Tag Name] AND EE.[PRD]=E.[PRD] AND EE.[Start Time]<E.[Start Time]
)Num(N);



row_number() over(partition by [Tag Name],[PRD] order by [Start Time]) num
from [PRD Project].[Data].[efan1]
21 сен 16, 12:02    [19691143]     Ответить | Цитировать Сообщить модератору
 Re: алтернатива row_number() over(partition by  [new]
sakot
Member

Откуда:
Сообщений: 132
iap,

SELECT E.*, M.Num
FROM [PRD Project].[Data].[efan1] E
CROSS APPLY
(
SELECT COUNT(*) as Num
FROM [PRD Project].[Data].[efan1] EE WHERE EE.[Tag Name]=E.[Tag Name] AND EE.[PRD]=E.[PRD] AND EE.[Start Time]<E.[Start Time]
) N

дает следующее сообщение:

[SQL Parser] [Line 5:2] SELECT statement on the right-hand side of CROSS APPLY not supported
23 сен 16, 11:24    [19699529]     Ответить | Цитировать Сообщить модератору
 Re: алтернатива row_number() over(partition by  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
sakot
[SQL Parser] [Line 5:2]

о вы все продолжаете
23 сен 16, 11:25    [19699542]     Ответить | Цитировать Сообщить модератору
 Re: алтернатива row_number() over(partition by  [new]
iap
Member

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

Скопируйте сюда результат запроса
PRINT @@VERSION
23 сен 16, 11:49    [19699688]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить