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

Откуда:
Сообщений: 23
Есть такая группировка (не больше 10 последних транзакций по группе):

;WITH deliv10 AS (
    select stock_id,
	     good_id,
             amo,
	     ROW_NUMBER() OVER (PARTITION BY stock_id, good_id ORDER BY [date] DESC) AS RowNum  
     FROM tranz
 )
SELECT d10.stock_id, d10.good_id, AVG(amo)
FROM deliv10 d10 
WHERE d10.RowNum <=10
GROUP BY d10.good_id, d10.stock_id


Как переделать этот запрос, чтобы если набирается меньше чем 10 транзакций по группе stock_id, good_id, то добиралось AVG для good_id по любым другим stock_id
20 апр 16, 10:52    [19081014]     Ответить | Цитировать Сообщить модератору
 Re: TOP N из группы с дополнением  [new]
a_voronin
Member

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

Что-то вы сложное завернули, но рекомендую смотреть в сторону оператора
OUTER APPLY 
( 
SELECT TOP 10 ...
FROM ... что вы там удумали
) X
20 апр 16, 11:49    [19081467]     Ответить | Цитировать Сообщить модератору
 Re: TOP N из группы с дополнением  [new]
Добрый Э - Эх
Guest
MS_t_SQL,

приведи юзабильный набор репрезентативных тестовых данных и желаемый вид результат на них.
20 апр 16, 13:05    [19082104]     Ответить | Цитировать Сообщить модератору
 Re: TOP N из группы с дополнением  [new]
Владислав Колосов
Member

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

табличная функция с двумя insert и условием.
20 апр 16, 13:07    [19082115]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить