ホームページ >データベース >mysql チュートリアル >Microsoft Access SQLでグループごとの上位Nレコードを取得するにはどうすればよいですか?
SQL (Access) を使用して各グループの上位 N レコードを取得します
質問:
Microsoft Access で SQL を使用して各グループの n 個の最新レコードを取得するにはどうすればよいですか?
背景:
ユーザーには「ユーザー」と「進捗」という名前のテーブルがあり、それぞれユーザーとそのスコアに関する情報が含まれています。各ユーザーの最新の 3 つのスコアを表示するクエリが必要です。
答え:
次のネストされたクエリは、各ユーザーの最新の 3 つのスコアを取得します:
<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 の最新の 3 つの日付を取得します。次に、メイン クエリは、[Date Taken] 列が各 LoginID の 3 つの最新の日付の 1 つと一致する、Progress テーブルから対応するレコードを選択します。メイン クエリの ORDER BY 句により、レコードが LoginID と [取得日] で降順に並べ替えられます。
以上がMicrosoft Access SQLでグループごとの上位Nレコードを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。