Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menjana Nombor Baris setiap Kumpulan dalam MySQL?

Bagaimana untuk Menjana Nombor Baris setiap Kumpulan dalam MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-11-24 00:20:10588semak imbas

How to Generate Row Numbers per Group in MySQL?

Nombor Baris setiap Kumpulan dalam MySQL

Dalam sistem pengurusan pangkalan data, memahami penomboran baris dalam kumpulan adalah penting untuk analisis dan manipulasi data. Dalam MySQL, menjana nombor baris berdasarkan kriteria tertentu, seperti ID krew dan jenis, boleh dicapai melalui pelbagai teknik.

Penyelesaian

Untuk menjana nombor baris untuk setiap gabungan unik ID krew dan jenis, anda boleh menggunakan pertanyaan MySQL 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;

Dalam ini pertanyaan:

  • Jadual1 mewakili jadual asal yang mengandungi data.
  • @curRow dan @curType ialah pembolehubah takrif pengguna yang dimulakan kepada 0 dan rentetan kosong, masing-masing.
  • Penyata CASE mengendalikan penomboran baris berdasarkan jenis. Jika jenis sepadan dengan @curType, nombor baris (kedudukan) ditambah dengan satu. Jika tidak, ia menetapkan semula @curRow kepada 1 dan mengemas kini @curType kepada jenis semasa.
  • Pernyataan 1 dalam CASE memastikan nombor baris bermula dari 1.

Pertanyaan ini dikembalikan output yang diingini dengan nombor baris ditambah sebagai lajur tambahan bernama 'pangkat'.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Nombor Baris setiap Kumpulan 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