如何选择 SQL Query 的第二行或第三行
Posted
技术标签:
【中文标题】如何选择 SQL Query 的第二行或第三行【英文标题】:How to select the second or third row of SQL Query 【发布时间】:2019-07-11 16:07:21 【问题描述】:我有这个问题:
SELECT TOP 6
NoMachine, COUNT(NoMachine) AS Calls
FROM
DT
GROUP BY
NoMachine
ORDER BY
Calls DESC;
在这6条记录中,我想选择每一条,第一条,第二条,第三条,等等。
最简单的方法是什么?我正在使用 SQL Server 2008 R2。
【问题讨论】:
如果你只想要TOP 6
的第一个3,为什么不直接使用TOP 3
呢?另外,如果没有人 提醒您,SQL Server 2008(R2) 现已停止支持;所以你真的很想看看升级路径。
我需要最常用机器的信息,前 6 台。一个接一个。而且我无法升级我工作服务器上的 SQL Server。
【参考方案1】:
使用row_number()
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)
【讨论】:
这段代码看不懂,很多语法错误。 @RobertoLopez 一些错字现在更新了答案检查 我编辑了你的代码,现在可以正常工作了,非常感谢! 如果发布的代码确实有效,这将是一个更好的答案。这个概念很好,但发布的代码根本不起作用。只需将第一行更改为“with cte as”即可。以上是关于如何选择 SQL Query 的第二行或第三行的主要内容,如果未能解决你的问题,请参考以下文章