ホームページ >データベース >mysql チュートリアル >Microsoft Access SQLでグループごとの上位Nレコードを取得するにはどうすればよいですか?

Microsoft Access SQLでグループごとの上位Nレコードを取得するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-07 17:27:40885ブラウズ

How to Retrieve the Top N Records per Group in Microsoft Access SQL?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。