Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Rekod N Teratas untuk Setiap Pengguna dalam Access SQL?

Bagaimana untuk Mendapatkan Rekod N Teratas untuk Setiap Pengguna dalam Access SQL?

Linda Hamilton
Linda Hamiltonasal
2025-01-07 17:32:41909semak imbas

How to Retrieve the Top N Records for Each User in Access SQL?

Akses SQL: Mengekstrak Rekod N Teratas bagi setiap Pengguna

Panduan ini menunjukkan cara untuk mendapatkan semula tiga rekod terbaharu teratas untuk setiap pengguna dalam pangkalan data Access menggunakan satu pertanyaan SQL. Kami akan memanfaatkan pertanyaan bersarang untuk tugasan ini.

Struktur Pangkalan Data

Pangkalan data kami terdiri daripada dua jadual:

  • Jadual Pengguna: LoginID, Forename, Surname, DOB, Guardian Forename, Guardian Surname, Telephone Number
  • Jadual Kemajuan: ProgressID, LoginID, Score, Date Taken

Penyelesaian: Pertanyaan Bersarang

Pendekatan mudah menggunakan TOP N dalam satu pertanyaan tidak disokong secara langsung dalam Access SQL untuk keperluan khusus ini (mendapatkan semula N teratas untuk setiap kumpulan). Sebaliknya, kami akan menggunakan subkueri untuk mencapai ini:

Pertanyaan dalaman mengenal pasti tiga nilai Date Taken teratas untuk setiap LoginID:

<code class="language-sql">SELECT TOP 3 PR2.[Date Taken]
FROM Progress AS PR2
WHERE PR2.LoginID = PR1.LoginID
ORDER BY PR2.[Date Taken] DESC</code>

Set hasil ini kemudiannya digunakan dalam klausa IN pertanyaan luar untuk menapis jadual Progress:

<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 AS PR2
    WHERE PR2.LoginID = PR1.LoginID
    ORDER BY PR2.[Date Taken] DESC
)
ORDER BY PR1.LoginID, PR1.[Date Taken] DESC;</code>

Pertanyaan akhir ini dengan cekap mengembalikan tiga rekod terbaharu untuk setiap LoginID, disusun dengan kemas oleh LoginID dan kemudian oleh Date Taken dalam susunan menurun (terbaru dahulu). Ini mengelakkan pengehadan penggunaan terus TOP N pada data terkumpul dalam Access SQL.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Rekod N Teratas untuk Setiap Pengguna dalam Access SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn