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

Откуда:
Сообщений: 206
Здравствуйте! Как можно вытащить минимальное и максимальное значение из таблицы, при этом пользуясь order by и top with ties,
т.е. оставить возможность нескольких максимальных/минимальных значений. Спасибо
18 дек 12, 06:57    [13646613]     Ответить | Цитировать Сообщить модератору
 Re: Найти минимум и максимум в таблице  [new]
Добрый Э - Эх
Guest
select top N with ties
  from ...
 order by row_number() over(partition by ... order by ...) / N
18 дек 12, 07:01    [13646615]     Ответить | Цитировать Сообщить модератору
 Re: Найти минимум и максимум в таблице  [new]
Добрый Э - Эх
Guest
э-э-э-э-э, немного соврал.

top, конечно же, должен быть 1. А row_number нужно делить на N + 1, где N - кол-во желаемых записей.
В итоге, правильнее будет так:
select top 1 with ties
  from ...
 order by row_number() over(partition by ... order by ...) / (N + 1)
18 дек 12, 07:05    [13646618]     Ответить | Цитировать Сообщить модератору
 Re: Найти минимум и максимум в таблице  [new]
boobonick
Member [заблокирован]

Откуда:
Сообщений: 206
О,спасибо!
18 дек 12, 08:08    [13646671]     Ответить | Цитировать Сообщить модератору
 Re: Найти минимум и максимум в таблице  [new]
nezhadnye_my
Guest
with cte as 
(select 1 as id, 1 as val union all
 select 2, 2 union all
 select 3, 1 union all 
 select 4, 3
 )

select top 1 with ties *
from cte
order by dense_rank() over(order by val)


id	val
3	1
1	1
18 дек 12, 12:17    [13647896]     Ответить | Цитировать Сообщить модератору
 Re: Найти минимум и максимум в таблице  [new]
Добрый Э - Эх
Guest
nezhadnye_my,

а если нужно два максимальных значения? ;) На твоих данных - это с val in (1,2)
Я так понял, что автора именно этот аспект интересует.
18 дек 12, 12:31    [13647980]     Ответить | Цитировать Сообщить модератору
 Re: Найти минимум и максимум в таблице  [new]
nezhadnye_my
Guest
Добрый Э - Эх,

аааа, тогда значит я просто не туда думаю,
вот для того и просят пример тестовых данных и желаемый результат :)
мне показалось, что ТС хочет как top 1 val with ties,
только чтоб строки целиком(а не просто значения) и наверное без подзапроса(а то в чем проблема-то?).
а про N до меня вообще не дошло, думаю: это ж его надо еще и знать априори,
откуда бы это :)
дошло только теперь!
18 дек 12, 12:48    [13648076]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить