MySQL MariaDB

Fungsi Jendela Nomor Baris MySQL

Fungsi Jendela Nomor Baris MySQL
Di dalam MySQL, metode ROW NUMBER() berisi nomor kronologis untuk setiap baris di dalam partisi. Itu hanya semacam fitur jendela. Angka baris dimulai pada 1 dengan angka baris dalam partisi. Ingat, sebelum versi 8.0, MySQL tidak mengizinkan fungsi ROW NUMBER() namun, ia menawarkan variabel sesi yang membantu seseorang meniru fitur ini. Kami akan memahami lebih lanjut tentang fungsionalitas MySQL ROW NUMBER() di seluruh panduan ini dan menghasilkan nomor berurutan untuk setiap baris dalam kumpulan hasil. Di MySQL, metode ROW_NUMBER() digunakan dengan klausa berikut:

Sintaksis:

>> PILIH col_name, ROW_NUMBER() OVER (PARTITION BY col_name, ORDER BY col_name) AS row_num FROM table_name;

Mari kita buka shell klien baris perintah MySQL dari aplikasi dan ketik kata sandi untuk masuk.

Anda harus membuat tabel baru atau menggunakan tabel default untuk mulai mengerjakan fungsi nomor baris. Seperti yang disajikan pada gambar di bawah ini, kami memiliki tabel "hewan" dalam skema "data" dengan beberapa catatan di dalamnya. Mari kita ambil record-nya menggunakan instruksi SELECT.

>> PILIH * DARI data.hewan;

Contoh 01: ROW_NUMBER() Menggunakan ORDER BY Clause

Kami akan menggunakan tabel yang sama untuk menguraikan beberapa contoh fungsi nomor baris. Kami mengambil contoh fungsi ROW_NUMBER() diikuti oleh Over(), sementara hanya menggunakan klausa ORDER BY. Kami telah mengambil semua catatan sambil memberi nomor baris sesuai dengan pesanan kolom "Harga". Kami telah memberikan nama "row_num" ke kolom, yang akan menyimpan nomor baris. Mari kita coba perintah di bawah ini untuk melakukannya.

>> PILIH *, ROW_NUMBER() OVER ( ORDER BY Price ) AS row_num FROM data.hewan;

Saat menjalankan kueri di atas, kita dapat melihat bahwa baris telah diberi nomor sesuai dengan urutan pengurutan kolom "Harga". Anda mungkin berpikir bahwa beberapa harga yang lebih kecil harus berada di bagian atas kolom dan harus diurutkan berdasarkan itu. Tetapi klausa ORDER BY hanya melihat digit pertama atau alfabet kolom untuk mengurutkan nilai.

Mari kita jalankan kueri yang sama diikuti oleh klausa ORDER BY sambil menggunakan urutan penyortiran kolom "Usia". Output akan diberikan sesuai dengan kolom "Usia".

>> PILIH *, ROW_NUMBER() OVER ( ORDER BY Age ) SEBAGAI row_num FROM data.hewan;

Contoh 02: ROW_NUMBER() Menggunakan PARTITION BY Clause

Kami akan menggunakan satu-satunya klausa PARTITION BY dalam kueri ROW_NUMBER() untuk memeriksa hasilnya. Kami telah menggunakan kueri SELECT untuk mengambil catatan yang diikuti oleh klausa ROW_NUMBER() dan OVER, sambil mempartisi tabel menurut kolom "Warna". Jalankan perintah yang ditambahkan di bawah ini di shell perintah.

>> SELECT *, ROW_NUMBER() OVER ( PARTITION BY Color ) SEBAGAI row_num FROM data.hewan;

Anda dapat melihat pada hasil bahwa penomoran baris telah ditetapkan dalam partisi, sesuai dengan urutan pengurutan warna. Karena kami memiliki 4 nilai untuk warna "Hitam" yang mengambil 4 baris. Itu sebabnya ia mendapat nomor empat baris mulai dari 1 hingga 4 dan sebaliknya.

Coba contoh yang sama, dipartisi dengan kolom "Gender" kali ini. Seperti yang kita ketahui, kita hanya memiliki dua jenis kelamin dalam tabel ini, makanya akan terbentuk 2 partisi. Betina menempati 9 baris, itu sebabnya ia memiliki penomoran baris dari 1 hingga 9. Sementara laki-laki memiliki 8 nilai, itu sebabnya ia memiliki 1 hingga 8.

>> SELECT *, ROW_NUMBER() OVER ( PARTITION BY Gender ) SEBAGAI row_num FROM data.hewan;

Contoh 03: ROW_NUMBER() Menggunakan PARTITION BY & ORDER BY

Kami telah melakukan dua contoh di atas di baris perintah MySQL, sekarang saatnya untuk melakukan contoh ROW_NUMBER() di MySQL Workbench 8.0. Jadi, buka MySQL Workbench 8.0 dari aplikasi. Hubungkan MySQL Workbench dengan database root host lokal untuk mulai bekerja.

Di sisi kiri MySQL Workbench, Anda akan menemukan bilah Skema, tiup navigator. Di bilah Skema ini, Anda akan menemukan daftar basis data. Di bawah daftar database, Anda akan memiliki tabel dan prosedur tersimpan yang berbeda, seperti yang Anda lihat pada gambar di bawah ini. Kami memiliki tabel yang berbeda di 'data' database kami. Kami akan membuka tabel 'order1' menggunakan perintah SELECT di area kueri untuk mulai menggunakannya untuk implementasi fungsi ROW_NUMBER().

>> PILIH * DARI data.pesanan1;

Tabel "order1" telah ditampilkan dalam tampilan grid seperti yang ditunjukkan di bawah ini:. Anda dapat melihatnya memiliki 4 bidang kolom, id, Region, Status, dan OrderNo. Kami akan mengambil semua catatan tabel ini saat menggunakan klausa ORDER BY dan PARTITION BY, keduanya secara bersamaan.

Di area kueri MySQL Workbench 8.0, ketik kueri yang ditampilkan di bawah ini. Kueri telah dimulai dengan klausa SELECT, mengambil semua catatan yang diikuti oleh fungsi ROW_NUMBER() bersama dengan klausa OVER. Setelah klausa OVER, kita tentukan kolom “Status” dilanjutkan dengan pernyataan “PARTITION BY” untuk membagi tabel menjadi partisi-partisi sesuai tabel ini. Klausa ORDER BY digunakan untuk mengatur tabel secara descending sesuai kolom “Region”. Nomor baris akan disimpan di kolom "row_num". Ketuk ikon flash untuk menjalankan perintah ini.

Hasil yang ditampilkan di bawah ini akan ditampilkan. Pertama-tama, tabel telah dipisahkan menjadi dua bagian sesuai dengan nilai kolom "Status". Setelah itu, telah disajikan dalam urutan kolom 'Wilayah' dan partisi telah ditetapkan dengan nomor baris.

Kesimpulan:

Akhirnya, kami telah menyelesaikan semua contoh yang diperlukan dalam menggunakan fungsi ROW_NUMBER() di MySQL Workbench dan MySQL Command-line Client Shell.

Instal Dolphin Emulator terbaru untuk Gamecube & Wii di Linux
Dolphin Emulator memungkinkan Anda memainkan game Gamecube & Wii pilihan Anda di Komputer Pribadi (PC) Linux. Menjadi emulator game sumber terbuka da...
Cara Menggunakan Cheat Engine GameConqueror di Linux
Artikel ini mencakup panduan tentang menggunakan mesin cheat GameConqueror di Linux. Banyak pengguna yang bermain game di Windows sering menggunakan a...
Emulator Konsol Game Terbaik untuk Linux
Artikel ini akan mencantumkan perangkat lunak emulasi konsol game populer yang tersedia untuk Linux. Emulasi adalah lapisan kompatibilitas perangkat l...