sql - MS Access 选择表中的第 N 个最高值

标签 sql database ms-access

所以我有以下数据库格式:

+------++------+
| ID   | Value |
+------++------+ 
| 1    |   5   |
| 1    |   2   |
| 1    |   8   |
| 1    |   1   |
| 2    |   2   |
| 2    |   3   |
| 2    |   6   |
| 2    |   10  |
| 3    |   1   |
| 3    |   2   |
| 3    |   5   |
| 3    |   3   | 
| 3    |   5   |
+------++------+

我正在尝试输出每个 ID 的前 3 个值。喜欢:

    +------++------+
    | ID   | Value |
    +------++------+ 
    | 1    |   8   |
    | 1    |   5   |
    | 1    |   3   |
    | 2    |   10  |
    | 2    |   6   |
    | 2    |   3   |
    | 3    |   5   |
    | 3    |   5   |
    | 3    |   3   |
    +------++------+

在 MS Access 中使用 SQL 可以做到这一点吗?

最佳答案

您需要关联子查询:

select t.*
from [table] t
where value in (select top 3 t1.value
                from [table] t1
                where t1.id = t.id
                order by t1.value desc
               ) order by ID asc, value desc;

关于sql - MS Access 选择表中的第 N 个最高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51763388/

相关文章:

mysql - 根据列解析行

sql - 在SQL语句中查找递归和

php - 在显示其他列之前,在 foreach 循环中显示具有特定非空列的数据库行

ms-access - Microsoft Visual Basic 运行时错误

php - 为什么 MS access bool 值 true -1 而不是 1 或 true?

sql - Postgres 触发器创建 - 错误 : no language specified SQL state: 42P13

php - 用于搜索的 SQL 查询

python - 什么是分布式锁,为什么要使用它?

php - 将 DropDown 值保存到 Php MySQL

sql-server - MS Access/SQL Server - VBA : Upload local file to filestream on remote SQL server