MySQL MariaDB

Fungsi Tetingkap MySQL Row Number

Fungsi Tetingkap MySQL Row Number
Dalam MySQL, kaedah ROW NUMBER () mengandungi nombor kronologi untuk setiap baris di dalam partisi. Ini hanya ciri tetingkap. Angka baris bermula pada 1 dengan angka baris dalam partisi. Ingat, sebelum versi 8.0, MySQL tidak membenarkan fungsi ROW NOMOR (), namun ia menawarkan pemboleh ubah sesi yang menolong seseorang meniru ciri ini. Kami akan memahami lebih banyak mengenai fungsi MySQL ROW NUMBER () sepanjang panduan ini dan menghasilkan nombor berturut-turut untuk setiap baris dalam koleksi hasil. Dalam MySQL, kaedah ROW_NUMBER () digunakan dengan salah satu klausa berikutnya:

Sintaks:

>> PILIH col_name, ROW_NUMBER () OVER (PARTITION BY col_name, ORDER BY col_name) AS baris_num DARI table_name;

Mari kita buka shell pelanggan baris perintah MySQL dari aplikasi dan taip kata laluan untuk log masuk.

Anda mesti membuat jadual baru atau menggunakan jadual lalai untuk mula mengerjakan fungsi nombor baris. Seperti yang ditunjukkan dalam gambar di bawah, kami memiliki tabel "binatang" dalam skema "data" dengan beberapa catatan di dalamnya. Mari ambil rekodnya menggunakan arahan SELECT.

>> PILIH * DARI data.haiwan;

Contoh 01: ROW_NUMBER () Menggunakan PESANAN OLEH Klausa

Kami akan menggunakan jadual yang sama untuk menghuraikan beberapa contoh fungsi nombor baris. Kami mengambil contoh fungsi ROW_NUMBER () diikuti oleh Over (), sementara hanya menggunakan klausa ORDER BY. Kami telah mengambil semua catatan sambil membilang baris mengikut susunan kolom "Harga". Kami telah memberikan nama "row_num" pada lajur, yang akan menyimpan nombor baris. Mari cuba arahan di bawah untuk melakukannya.

>> PILIH *, ROW_NUMBER () LEBIH (ORDER MENGIKUT Harga) SEBAGAI baris_num DARI data.haiwan;

Setelah menjalankan pertanyaan di atas, kita dapat melihat bahawa baris telah ditetapkan dengan angka mengikut urutan penyusunan lajur "Harga". Anda mungkin berpendapat bahawa beberapa harga yang lebih kecil harus berada di bahagian atas lajur dan harganya sesuai mengikutnya. Tetapi klausa ORDER BY hanya melihat digit pertama atau abjad lajur untuk menyusun nilai.

Mari jalankan pertanyaan yang sama diikuti dengan klausa ORDER BY semasa menggunakan susunan penyusun lajur "Umur". Output akan diberikan sesuai dengan kolom "Umur".

>> PILIH *, ROW_NUMBER () LEBIH (ORDER MENGIKUT Umur) SEBAGAI baris_num DARI data.haiwan;

Contoh 02: ROW_NUMBER () Menggunakan BAHAGIAN MENGIKUT Klausa

Kami akan menggunakan satu-satunya klausa PARTISI OLEH dalam pertanyaan ROW_NUMBER () untuk memeriksa hasilnya. Kami telah menggunakan permintaan PILIH untuk mengambil catatan diikuti dengan klausa ROW_NUMBER () dan OVER, sambil mempartisi tabel mengikut lajur "Warna". Jalankan perintah di bawah yang dilampirkan di shell perintah.

>> PILIH *, ROW_NUMBER () LEBIH (PARTISI MENGIKUT Warna) SEBAGAI baris_num DARI data.haiwan;

Anda dapat melihat hasilnya bahawa penomboran baris telah ditetapkan dalam partisi, mengikut urutan penyusun warna. Oleh kerana kita mempunyai 4 nilai untuk warna "Hitam" yang memerlukan 4 baris. Itulah sebabnya ia mendapat nombor empat baris bermula dari 1 hingga 4 dan sebaliknya.

Cuba contoh yang sama, yang dipartisi oleh lajur "Jantina" kali ini. Seperti yang kita ketahui, kita hanya mempunyai dua jantina dalam jadual ini, sebab itulah 2 partisi akan terbentuk. Perempuan menempati 9 baris, oleh sebab itu ia mempunyai nombor 1 hingga 9 baris. Walaupun lelaki mempunyai 8 nilai, itulah sebabnya ia mempunyai 1 hingga 8.

>> PILIH *, ROW_NUMBER () LEBIH (PARTISI MENGIKUT Jantina) SEBAGAI baris_num DARI data.haiwan;

Contoh 03: ROW_NUMBER () Menggunakan BAHAGIAN OLEH & PESANAN OLEH

Kami telah melakukan dua contoh di atas dalam baris perintah MySQL, sekarang saatnya untuk melakukan contoh ROW_NUMBER () di MySQL Workbench 8.0. Oleh itu, buka MySQL Workbench 8.0 dari aplikasi. Sambungkan MySQL Workbench dengan pangkalan data root host tempatan untuk mula berfungsi.

Di sebelah kiri MySQL Workbench, anda akan menemui bar Schema, meniup navigator. Di bar Skema ini, anda akan menemui senarai pangkalan data. Di bawah senarai pangkalan data, anda akan mempunyai jadual dan prosedur yang berbeza, seperti yang anda lihat pada gambar di bawah. Kami mempunyai jadual yang berbeza dalam 'data' pangkalan data kami. Kami akan membuka tabel 'order1' menggunakan perintah SELECT di area pertanyaan untuk mulai menggunakannya untuk pelaksanaan fungsi ROW_NUMBER ().

>> PILIH * DARI data.pesanan1;

Jadual "order1" telah ditampilkan dalam tampilan grid seperti yang ditunjukkan di bawah ini. Anda dapat melihatnya mempunyai 4 bidang kolom, id, Wilayah, Status, dan OrderNo. Kami akan mengambil semua rekod jadual ini semasa menggunakan klausa ORDER BY dan PARTITION BY, keduanya pada masa yang sama.

Di kawasan pertanyaan MySQL Workbench 8.0, taipkan pertanyaan yang ditunjukkan di bawah. Pertanyaan telah dimulakan dengan klausa SELECT, mengambil semua rekod diikuti dengan fungsi ROW_NUMBER () bersama dengan klausa OVER. Setelah klausa OVER, kami telah menentukan lajur "Status" dilanjutkan dengan pernyataan "PARTITION BY" untuk membahagikan jadual menjadi partisi mengikut jadual ini. Klausa ORDER BY digunakan untuk menyusun jadual dengan cara menurun mengikut lajur "Wilayah". Nombor baris akan disimpan di lajur “row_num”. Ketuk ikon denyar untuk melaksanakan perintah ini.

Hasil yang ditunjukkan di bawah akan ditunjukkan. Pertama sekali, tabel telah dipisahkan menjadi dua bahagian sesuai dengan nilai lajur "Status". Setelah itu, ia telah disajikan dalam urutan menurun kolom 'Wilayah' dan partisi telah diberikan dengan nombor baris.

Kesimpulan:

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

Trackpad dan Mouse Pointer pada skrin Windows AppyMouse untuk Tablet Windows
Pengguna tablet sering kehilangan penunjuk tetikus, terutama ketika mereka biasa menggunakan komputer riba. Telefon pintar dan tablet skrin sentuh dil...
Butang tetikus tengah tidak berfungsi pada Windows 10
The butang tetikus tengah membantu anda menelusuri halaman web dan skrin yang panjang dengan banyak data. Sekiranya ia berhenti, anda akan menggunakan...
Cara menukar butang tetikus Kiri & Kanan pada PC Windows 10
Sudah menjadi kebiasaan bahawa semua peranti tetikus komputer dirancang secara ergonomik untuk pengguna tangan kanan. Tetapi ada peranti tetikus yang ...