使用 SQL (Access) 获取每个分组的前 N 条记录
问题:
如何使用 Microsoft Access 中的 SQL 获取每个分组的 n 条最新记录?
背景:
用户拥有名为“用户”和“进度”的表,分别包含有关用户及其分数的信息。他们需要一个查询来显示每个用户的三个最新分数。
答案:
以下嵌套查询检索每个用户的三个最新分数:
<code class="language-sql">SELECT PR1.LogInID, PR1.Score, PR1.[Date Taken] FROM Progress AS PR1 WHERE PR1.[Date Taken] IN ( SELECT TOP 3 PR2.[Date Taken] FROM Progress PR2 WHERE PR2.LoginID = PR1.LoginID ORDER BY PR2.[Date Taken] DESC ) ORDER BY LoginID, [Date Taken]</code>
说明:
IN 子句内的子查询使用 TOP 关键字和 ORDER BY 子句检索每个 LoginID 的三个最新日期。然后,主查询从 Progress 表中选择相应的记录,其中 [Date Taken] 列与每个 LoginID 的三个最新日期之一匹配。主查询中的 ORDER BY 子句确保记录按 LoginID 和 [Date Taken] 降序排序。
以上是如何在 Microsoft Access SQL 中检索每组的前 N 条记录?的详细内容。更多信息请关注PHP中文网其他相关文章!