如何从SQL Server列中选择前3个最大值

时间:2015-12-03 11:40:33

标签: sql-server max repeat

我将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' s应返回前3个最大值,类似的话,如果第3个值与其他值匹配,并且第2个值与其他值匹配则查询应返回id个&#39}。每次执行查询时结果都应该是一致的。

1 个答案:

答案 0 :(得分:1)

top函数的with ties参数将返回与顶部值匹配的所有行:

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