我将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}。每次执行查询时结果都应该是一致的。
答案 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