Penjanaan Nombor Baris untuk Data Dikumpulkan dalam MySQL
Menetapkan nombor baris berurutan kepada data yang dikumpulkan mengikut lajur tertentu ialah teknik yang berharga untuk manipulasi data yang cekap dan pembentangan. Dalam senario ini, anda ingin menjana nombor baris untuk satu set data berdasarkan kedua-dua crew_id dan lajur jenis.
Untuk mencapai ini, gunakan pertanyaan tersuai berikut:
SELECT id,
crew_id,
amount,
type,
(
CASE type
WHEN @curType
THEN @curRow := @curRow + 1
ELSE @curRow := 1 AND @curType := type END
) + 1 AS rank
FROM Table1 p,
(SELECT @curRow := 0, @curType := '') r
ORDER BY crew_id,type asc;
Jom pecahkan pertanyaan langkah demi langkah:
-
Subquery: Pertanyaan tersuai bermula dengan subquery yang ditakrifkan oleh (SELECT @curRow := 0, @curType := '') r . Ini memulakan dua pembolehubah yang ditentukan pengguna, @curRow dan @curType, masing-masing menetapkannya kepada 0 dan rentetan kosong. Pembolehubah ini menjejaki nombor baris dan nilai jenis yang ditemui.
-
Pertanyaan Luar: Pertanyaan utama, diwakili oleh SELECT id, crew_id, ..., mendapatkan semula data yang diperlukan daripada Jadual1 meja. Fokus utama di sini ialah pengiraan lajur pangkat.
-
Penyata KES Bersarang: Penyataan KES dalam pengiraan pangkat menyemak sama ada nilai jenis semasa sepadan dengan jenis yang ditemui sebelum ini (@curType) . Jika ia sepadan, ia menambah @curRow sebanyak 1 dan menetapkan nilai bertambah kepada kedudukan. Walau bagaimanapun, jika jenis berbeza, ia menetapkan semula @curRow kepada 1 dan mengemas kini @curType kepada nilai jenis semasa. Ini memastikan penomboran baris yang tepat dalam setiap kumpulan yang ditakrifkan oleh crew_id dan jenis.
-
PESANAN MENGIKUT Klausa: Keputusan akhir diisih dalam tertib menaik berdasarkan crew_id dan jenis, yang penting untuk baris yang betul peruntukan nombor dalam setiap kumpulan.
Dengan mengikuti pertanyaan komprehensif ini, anda boleh menjana nombor baris dengan cekap untuk kumpulan data yang ditakrifkan oleh berbilang lajur, menyediakan penyelesaian serba boleh untuk manipulasi data dan tugas pembentangan dalam MySQL.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Nombor Baris untuk Data Berkumpulan dalam MySQL?. 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