Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan 3 Rekod Terbaharu Teratas bagi setiap Kumpulan Pengguna dalam Access SQL?

Bagaimana untuk Mendapatkan 3 Rekod Terbaharu Teratas bagi setiap Kumpulan Pengguna dalam Access SQL?

Susan Sarandon
Susan Sarandonasal
2025-01-07 17:36:38495semak imbas

How to Retrieve the Top 3 Recent Records per User Group in Access SQL?

Dengan Cekap Mendapatkan Tiga Rekod Terbaru bagi setiap Kumpulan Pengguna dalam Access SQL

Pengurusan pangkalan data selalunya melibatkan pengambilan semula subset data tertentu. Dalam senario seperti menjejak markah ujian, anda mungkin perlu mengekstrak tiga entri terbaharu untuk setiap pengguna individu. Tugasan ini, walaupun kelihatan mudah, memerlukan pertanyaan SQL yang canggih untuk menggabungkan pemilihan rekod terkini dengan pengumpulan data mengikut pengguna.

Pertanyaan SQL berikut menyediakan penyelesaian:

<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] DESC;</code>

Pecahan Pertanyaan:

Pertanyaan ini menggunakan subkueri (pertanyaan dalaman) dalam pertanyaan utama (pertanyaan luar) untuk mencapai hasil yang diingini.

  • Subquery: Pertanyaan bersarang ini mengenal pasti tiga nilai "Tarikh Diambil" terbaharu untuk setiap LoginID unik. Ia melakukan ini dengan:

    • Memilih tiga nilai [Date Taken] teratas.
    • Menapis jadual Progress (PR2) untuk hanya memasukkan rekod yang sepadan dengan LoginID daripada pertanyaan luar (PR1.LoginID).
    • Memesan keputusan dalam susunan menurun dengan [Date Taken] untuk memastikan tarikh terkini diutamakan.
  • Pertanyaan Utama: Pertanyaan utama kemudian menapis jadual Progress (PR1) menggunakan operator IN. Operator ini memastikan bahawa hanya rekod yang nilai [Date Taken]nya terdapat dalam set hasil subkueri (iaitu, tiga tarikh terbaharu untuk pengguna itu) disertakan. Akhirnya, keputusan disusun mengikut LoginID dan kemudian dengan [Date Taken] (menurun) untuk kebolehbacaan mudah.

Pendekatan ini dengan cekap mendapatkan semula tiga markah terbaharu untuk setiap pengguna, mengendalikan potensi hubungan dalam medan [Date Taken] dengan berkesan. Gabungan penggunaan subkueri dan pengendali IN menyediakan penyelesaian yang ringkas dan berkuasa untuk cabaran pangkalan data biasa ini.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan 3 Rekod Terbaharu Teratas bagi setiap Kumpulan 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