sql - 在一列中查找 n 个最大值

标签 sql sql-server sql-server-2008

我试图在 SQL Server 的特定列中找到 n 个最大的数字。

我们可以轻松找到列中的最大值和第二大值。

但我如何找到一列中的 5 个最大值?

最佳答案

您为 MySQL 和 SQL Server 都标记了这个。在 SQL Server 中,您可以使用 TOP :

SELECT TOP 5 yourColumn
FROM yourTable
ORDER BY someColumn DESC;

TOP 限制返回的行数。要获取具有最大/最小值的数据,您需要包含一个 ORDER BY

在 MySQL 中,您将使用 LIMIT

在 SQL Server 中执行此操作的另一种方法是使用 row_number():

select id
from 
(
  select id, row_number() over(order by id desc) rn
  from yourtable
) x
where rn <= 5

参见 SQL Fiddle With Demo

关于sql - 在一列中查找 n 个最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12705789/

相关文章:

sql - 使用 dplyr::left_join (R lang) 与 SQL LEFT JOIN 处理 NA/NULL 的差异

sql - 触发插入旧值-已更新的值

sql - 如何选择具有不同日期条件的同一列值并在同一查询中显示为column1和column2

mysql - 根据不同的标准求和值

mysql - 为通常为空的列建议的数据库设计

MySQL 授予无效?

sql - Oracle JSON_OBJECT NULL ON NULL 子句不起作用

sql-server - SQL函数检查日期是否在另一个表的2个日期之间

sql - 所以我不能在时态表的列定义中使用 NOT NULL?

sql-server - Azure 网站连接到不同区域的 Azure SQL 数据库的性能问题