Mengekstrak 10 Rekod Teratas setiap Kategori dalam SQL Server 2005
Panduan ini menunjukkan cara untuk mendapatkan semula 10 rekod teratas untuk setiap kategori dengan cekap menggunakan satu pertanyaan SQL Server 2005.
Ini penyelesaiannya:
<code class="language-sql">SELECT rs.Field1, rs.Field2 FROM ( SELECT Field1, Field2, RANK() OVER (PARTITION BY Section ORDER BY RankCriteria DESC) AS Rank FROM table ) rs WHERE Rank <= 10</code>
Pertanyaan ini menggunakan fungsi RANK()
untuk menetapkan kedudukan kepada setiap rekod dalam kategorinya, berdasarkan RankCriteria
(lajur yang mentakrifkan susunan kedudukan). Klausa PARTITION BY Section
memastikan kedudukan bebas dalam setiap kategori. RANK()
memberikan kedudukan berurutan, bermula pada 1 untuk rekod kedudukan tertinggi.
Klausa WHERE Rank <= 10
menapis keputusan, mengehadkan output kepada 10 rekod teratas dalam setiap kategori. Adalah penting untuk diingat bahawa jika ikatan wujud dalam RankCriteria
, lebih daripada 10 rekod mungkin dikembalikan untuk satu kategori.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan 10 Rekod Teratas setiap Kategori Menggunakan SQL Server 2005?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!