2015-12-03 4 views
0

У меня есть значения в SQL Server производного столбце, отсортированные в нисходящей т.е.Как выбрать 3 лучшие максимальные значения из столбца SQL Server

id Count OR  id Count OR  id Count 
1 4    1 5    1 11 
2 4    2 2    2 1 
3 4    3 1    3 1 
4 4    4 1    4 1 
5 4    5 1    5 1 

Теперь я хочу, чтобы выбрать 3 лучших максимальные значения. Как я могу выбрать так, чтобы запрос возвращал последовательный результат каждый раз.
Например, если значения Count такие же, что и id, должны быть возвращены как верхние 3 максимума, аналогично, если третье значение сопоставляется с другими значениями, и если второе значение сопоставляется с другими значениями, то id должно быть возвращено запрос. И результат должен быть последовательным при каждом выполнении запроса.

ответ

1

с стяжками аргументом верхней функции будет возвращать все из строк, которые соответствуют верхним значениям:

select top (3) with ties id, count from table1 
order by count desc 

В качестве альтернативы, если вы хотите, чтобы вернуть только 3 значения, но убедитесь, что они всегда то же 3 значения, тогда вам нужно будет использовать что-то еще в качестве тай-брейкера. В этом случае, похоже, ваш столбец id может быть уникальным.

select top (3) id, count from table1 
order by count desc, id