我选择了一个奇怪的情况。我注意到当我选择前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的记录。有人注意到这样的事情吗?
答案 0 :(得分:1)
使用时
order by max([DateCreated]) desc
在查询中TOP之前计算。 每次包含一条记录时,max([DateCreated])会根据其中所有其他记录的值重新定位此新记录。