Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengurutkan Nombor Baris dalam Kumpulan dalam SQL?

Bagaimana untuk Mengurutkan Nombor Baris dalam Kumpulan dalam SQL?

Susan Sarandon
Lepaskan: 2024-12-27 21:22:10
asal
197 orang telah melayarinya

How to Sequentially Number Rows within Groups in SQL?

Menomborkan Baris Secara Berurutan mengikut Kumpulan Berkunci dalam SQL

Tugas menomborkan baris secara berurutan yang dikumpulkan oleh kunci tertentu dalam SQL adalah keperluan biasa dalam pemprosesan data. Untuk mencapai matlamat ini, pelbagai pangkalan data SQL menawarkan fungsi dan teknik asli yang membolehkan penomboran baris yang cekap dan tepat dalam setiap kumpulan utama.

Pelaksanaan dalam Pangkalan Data Berbeza

Banyak SQL yang popular pangkalan data menyediakan fungsi terbina dalam atau sambungan untuk baris berjujukan penomboran:

  • SQL Server: ROW_NUMBER() OVER (PARTITION BY ...)
  • Oracle: ROW_NUMBER() OVER ( PARTITION OLEH ...)
  • Postgres: ROW_NUMBER() OVER (PARTITION BY ...)
  • Sybase: ROW_NUMBER() OVER (PARTITION BY ...)
  • MySQL 8.0 : ROW_NUMBER() OVER (PARTITION BY ...)
  • MariaDB 10.2 : ROW_NUMBER() OVER (PARTITION BY ...)
  • SQLite 3.25 : ROW_NUMBER() OVER (PARTITION BY ...)

Contoh Pertanyaan

Pertimbangkan contoh jadual berikut dengan tupel dikumpulkan mengikut lajur KOD:

CODE | NAME
------|------
A     | Apple
A     | Angel
A     | Arizona
B     | Bravo
C     | Charlie
C     | Cat
D     | Dog
D     | Data
D     | Down
D     | Doppler
Salin selepas log masuk

Kepada berurutan nombor baris dalam setiap kumpulan KOD, pertanyaan berikut boleh digunakan:

SELECT
    CODE,
    ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 AS C_NO,
    NAME
FROM
    MyTable;
Salin selepas log masuk

Output

Pertanyaan akan menghasilkan output berikut, dengan baris dinomborkan secara berurutan dalam setiap kumpulan KOD:

CODE | C_NO | NAME
------|------|------
A     | 0    | Apple
A     | 1    | Angel
A     | 2    | Arizona
B     | 0    | Bravo
C     | 1    | Charlie
C     | 0    | Cat
D     | 0    | Dog
D     | 1    | Data
D     | 2    | Down
D     | 3    | Doppler
Salin selepas log masuk

Nota:

Fungsi ROW_NUMBER() bermula penomboran daripada 1 secara lalai. Untuk menjajarkan dengan output yang dikehendaki, ungkapan ROW_NUMBER() OVER (PARTITION BY ...) - 1 digunakan untuk mengalihkan penomboran daripada berasaskan 1 kepada berasaskan 0.

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

sumber:php.cn
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