所以我有以下数据库格式:
+------++------+
| 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/