使用 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中文網其他相關文章!