Sql server top query

问题描述:

我遇到一些奇怪的行为,我真的没有测试日期/环境,所以 这个查询会返回按count排列的前5行,还是会取前5行并对它们进行排序。第一个问题是什么?Sql server top query

select top 5 l.userId, count(*) "count" from Log l 
    where ... 
    group by l.userId 
    order by "count" desc 

创建一些测试数据的时间可能不会超过几分钟,但是是的,该查询完成了您想要的操作。 TOPORDER后完成任务。

+1

也许不是测试*数据*而是*环境*(即SQL Server)是问题所在?只是一个想法... – scherand 2010-06-04 08:23:11

+0

@scherand:快捷版是免费的。即使需要一段时间才能安装,但如果您没有其他数据库可以随时进行测试,则无论如何,您都可以随时随地进行测试。 – 2010-06-04 08:32:05

+0

好吧,实际上环境不是问题,但是在两种环境中我得到了奇怪的不同结果。一个是客户的测试环境,我无法创建更多的数据。感谢您的帮助,非常感谢 – 2010-06-04 15:47:27

它将返回前5行并按顺序排列。

更多关于此

http://msdn.microsoft.com/en-us/library/ms189463.aspx

这将不使用顶部,你必须查询返回前5个结果。

这将执行您定义的任何查询,然后返回该查询的前五行。