SQL选择前101名

时间:2015-08-24 14:39:59

标签: sql-server

我选择了一个奇怪的情况。我注意到当我选择前100名时,记录没有从数据库返回,但是当进行前101时,记录显示在41位。

查询是这样的:

select top 100 GroupId, count(HouseId)
from House h
group by h.GroupId
order by max([DateCreated]) desc

从关于前100名与前101名的所有讨论中我都注意到,每个人都说前101名正在使用另一种算法,我们可能会遇到速度问题,但我的问题与此无关。排名前100的我错过了应该出现在索引41的记录。有人注意到这样的事情吗?

1 个答案:

答案 0 :(得分:1)

使用时

order by max([DateCreated]) desc

在查询中TOP之前计算。 每次包含一条记录时,max([DateCreated])会根据其中所有其他记录的值重新定位此新记录。