如何选择SQL查询的第二行或第三行
我有一个疑问:如何选择SQL查询的第二行或第三行,sql,sql-server,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008 R2,我有一个疑问: SELECT TOP 6 NoMachine, COUNT(NoMachine) AS Calls FROM DT GROUP BY NoMachine ORDER BY Calls DESC; 在这6条记录中,我想选择每一条,第一条,第二条,第三条,等等 最简单的方法是什么?我正在使用SQL Server 2008 R2。使用行号() 如果您只想要前6名中的前3名,为什么不直接使用前3名呢?另外,如果没有人提醒您,SQLServe
SELECT TOP 6
NoMachine, COUNT(NoMachine) AS Calls
FROM
DT
GROUP BY
NoMachine
ORDER BY
Calls DESC;
在这6条记录中,我想选择每一条,第一条,第二条,第三条,等等
最简单的方法是什么?我正在使用SQL Server 2008 R2。使用行号()
如果您只想要前6名中的前3名,为什么不直接使用前3名呢?另外,如果没有人提醒您,SQLServer2008(R2)现在已经不支持了;所以你真的想看看升级路径。我需要最常用的机器的信息,前6台。逐一地。我无法在我的工作服务器上升级SQL Server。我无法理解此代码,有很多语法错误。@RobertoLopez有一些拼写错误,更新了答案检查现在我编辑了您的代码,现在对我来说工作正常,非常感谢!如果发布的代码确实有效,这将是一个更好的答案。这个概念很好,但是发布的代码根本不起作用。只需将第一行更改为“with cte as”,这将是可行的。
select * from
(SELECT NoMachine,
COUNT(*) AS Calls,
row_number()over(order by Calls DESC) rn
FROM DT GROUP BY NoMachine
) a where rn in (2,3)