Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Nombor Baris mengikut Kumpulan dalam MySQL?

Bagaimana untuk Nombor Baris mengikut Kumpulan dalam MySQL?

Barbara Streisand
Lepaskan: 2024-11-11 21:52:03
asal
470 orang telah melayarinya

How to Number Rows by Group in MySQL?

Menomborkan Baris mengikut Kumpulan dalam MySQL

Pertimbangkan struktur jadual berikut:

id crew_id amount type
1 4 1000 AUB
2 4 1500 AUB
3 5 8000 CA
4 4 1000 CA
5 5 1000 AUB
6 6 3000 AUB
7 4 2000 CA
8 6 3500 AUB
9 4 5000 AUB
10 5 9000 CA
11 5 1000 CA

Untuk menjana set hasil yang termasuk nombor baris untuk setiap gabungan crew_id dan jenis, laksanakan yang berikut pertanyaan:

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;
Salin selepas log masuk

Penjelasan:

  • Pertanyaan mula-mula memulakan dua pembolehubah pengguna, @curRow dan @curType, untuk menjejaki nombor baris semasa dan nilai semasa jenis, masing-masing.
  • Dalam pertanyaan utama, penyata CASE menyemak sama ada nilai semasa jenis sepadan dengan nilai yang disimpan sebelum ini dalam @curType. Jika ia sepadan, ia menambah @curRow sebanyak 1. Jika tidak, ia menetapkan semula @curRow kepada 1 dan mengemas kini @curType dengan nilai baharu.
  • Ungkapan (@curRow := @curRow 1) 1 menambah penambahan atau tetapkan semula nilai @curRow sebanyak 1 untuk menjana nombor baris.
  • Pertanyaan disusun mengikut crew_id dan taip untuk mengumpulkan dan menomborkan baris dengan betul.

Output:

id crew_id amount type row_number
1 4 1000 AUB 1
2 4 1500 AUB 2
9 4 5000 AUB 3
4 4 1000 CA 1
7 4 2000 CA 2
5 5 1000 AUB 1
3 5 8000 CA 1
10 5 9000 CA 2
11 5 1000 CA 3
6 6 3000 AUB 1
6 6 3000 AUB 2

Atas ialah kandungan terperinci Bagaimana untuk Nombor Baris mengikut Kumpulan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan