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

Sql server 如何从SQL Server列中选择前3个最大值,sql-server,max,repeat,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

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个最大值返回,类似地,如果第3个值与其他值匹配,如果第2个值与其他值匹配,那么查询应该返回哪个id。每次执行查询时,结果应该是一致的

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

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