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

Откуда:
Сообщений: 44
Добрый день
У меня есть запрос на выбор 3 рандомных покупателей .
Как можно выбранным трем приписать номер приза 1 ,2 или 3

Select Top(3) Person,sum(SumOfBuy) 
from Market
group by Person
having sum(SumOfBuy)>=100
Order by NEWID()
14 ноя 16, 11:12    [19889974]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21100
Добавить в выходной набор ROW_NUMBER()?
14 ноя 16, 11:13    [19889985]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
LazzyMind
Member

Откуда:
Сообщений: 44
Akina,
Я добавил ROW_NUMBER() over ( order by Person) as PrizeNumber
в итоге prizeNumber принимает значения до количества покупателей
как можно это ограничить?
14 ноя 16, 11:32    [19890108]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8570
Пусть клиент нумерует сроки.
14 ноя 16, 11:33    [19890117]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
LazzyMind
Member

Откуда:
Сообщений: 44
Владислав Колосов,

Как это сделать если покупателей у нас 10 а выбираем только 3х
row number вернет номер покупателя те 1-10
14 ноя 16, 11:36    [19890137]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
LazzyMind,

вынесите нумерацию выше с вашего подзапроса
14 ноя 16, 11:38    [19890147]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21100
LazzyMind
Я добавил ROW_NUMBER() over ( order by Person) as PrizeNumber
А зачем ORDER BY? просто OVER ()...
14 ноя 16, 11:47    [19890199]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Akina
LazzyMind
Я добавил ROW_NUMBER() over ( order by Person) as PrizeNumber
А зачем ORDER BY? просто OVER ()...

да ладно :) максимум ORDER BY 1/0, но сути это не меняет
14 ноя 16, 11:49    [19890225]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
Владислав Колосов
Member

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

запрос вернет три сроки, какие десять.
Клиентское приложение, отчет, например, или excel легко пронумерует строки.
14 ноя 16, 11:50    [19890237]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
LazzyMind
Member

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

Спасибо разобрался
14 ноя 16, 11:58    [19890276]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
LazzyMind
Member

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

over у меня требует order by
14 ноя 16, 12:29    [19890469]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
LazzyMind
Member

Откуда:
Сообщений: 44
убрал запрос в cte и затем из него выбрал все отлично работает

можно ли два cte сделать в одной хранимой процедуре?
14 ноя 16, 13:02    [19890745]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
LazzyMind
убрал запрос в cte и затем из него выбрал все отлично работает

можно ли два cte сделать в одной хранимой процедуре?

а что запрещает?
14 ноя 16, 13:03    [19890755]     Ответить | Цитировать Сообщить модератору
 Re: запрос с выбором приза  [new]
LazzyMind
Member

Откуда:
Сообщений: 44
TaPaK,
уже ничего
забыл ;
14 ноя 16, 13:11    [19890826]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить