
Memilih 3 Baris Teratas daripada Berbilang Kategori dalam MySQL
Memilih baris teratas daripada setiap kategori dalam jadual boleh menjadi mencabar. Satu kaedah yang menggunakan paparan dan subkueri, seperti yang digariskan dalam percubaan awal, mungkin mengembalikan hasil yang salah.
Pendekatan yang lebih berkesan menggunakan fungsi analitik, yang tidak disokong oleh MySQL secara asli. Walau bagaimanapun, adalah mungkin untuk meniru fungsi ini menggunakan pembolehubah. Begini caranya:
<code class="sql">SELECT x.*
FROM (
SELECT t.*,
CASE
WHEN @category != t.category THEN @rownum := 1
ELSE @rownum := @rownum + 1
END AS rank,
@category := t.category AS var_category
FROM TBL_ARTIKUJT t
JOIN (SELECT @rownum := NULL, @category := '') r
ORDER BY t.category
) x
WHERE x.rank <= 3;</code>Pertanyaan ini memulakan pembolehubah @rownum dan @category menggunakan operasi JOIN. Ia kemudian memberikan kedudukan kepada setiap baris berdasarkan kategorinya, menambah kedudukan jika kategori berubah.
Akhir sekali, pertanyaan memilih hanya baris dengan kedudukan 3 atau kurang. Ambil perhatian bahawa anda mungkin perlu mengubah suai klausa SELECT x.* untuk memasukkan hanya lajur yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Memilih 3 Baris Teratas daripada Setiap Kategori dalam MySQL Tanpa Fungsi Analitik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Bagaimana untuk menyelesaikan masalah bahawa cad tidak boleh disalin ke papan keratan
Semak status port yang diduduki dalam tingkap
Memori yang boleh bertukar maklumat secara terus dengan CPU ialah a
Apakah pangkalan data hubungan
Apakah sistem linux biasa?
Semak saiz folder dalam linux
css
Mengapakah vue.js melaporkan ralat?