MySQL MariaDB

Fungsi Tetingkap MySQL RANK

Fungsi Tetingkap MySQL RANK
Kaedah Ranking memperuntukkan peringkat di dalam partisi hasil satu set ke setiap baris. Peringkat baris ditentukan dengan menambahkan satu angka kedudukan dari baris yang mendahuluinya. MySQL menggunakan ciri peringkat yang membantu satu peringkat per baris dalam partisi skema. Dalam MySQL, kaedah penilaian sememangnya merupakan sebahagian daripada kaedah tetingkap. Anda akan menggunakan kaedah penilaian di MySQL dengan salah satu klausa berikut:

Secara keseluruhan, ada tiga jenis fungsi peringkat, seperti berikut:

PERINGKAT MySQL ():

Ini adalah kaedah yang memberikan peringkat dalam partisi atau array hasil dengan jurang setiap baris. Secara kronologi, kedudukan baris tidak diperuntukkan sepanjang masa (i.e., meningkat satu dari baris sebelumnya). Walaupun anda mempunyai nilai antara beberapa nilai, pada ketika itu, utiliti rank () menggunakan ranking yang sama dengannya. Juga, kedudukan sebelumnya ditambah angka nombor berulang mungkin nombor pangkat berikutnya.

Untuk memahami peringkat, buka shell klien baris perintah dan ketik kata laluan MySQL anda untuk mula menggunakannya.

Anggaplah kita memiliki tabel di bawah bernama "sama" dalam "data" pangkalan data, dengan beberapa catatan.

>> PILIH * DARI data.sama;

Contoh 01: PERINGKAT Ringkas ()

Di bawah ini, kami telah menggunakan fungsi Rank dalam perintah SELECT. Pertanyaan ini memilih lajur "id" dari tabel "sama" sambil memeringkatnya sesuai dengan lajur "id". Seperti yang anda lihat, kami telah memberikan nama pada lajur peringkat, yang merupakan "my_rank". Peringkat sekarang akan disimpan di lajur ini, seperti yang ditunjukkan di bawah.

>> SELECT id, RANK () OVER (ORDER BY id) my_rank DARI fata.sama;

Contoh 02: RANK () Menggunakan BAHAGIAN

Andaikan jadual "pekerja" lain dalam pangkalan data "data" dengan rekod berikut. Mari kita mempunyai contoh lain yang membelah hasil yang ditetapkan menjadi segmen.

>> PILIH * DARI data.pekerja;

Untuk menggunakan kaedah RANK (), instruksi berikutnya memberikan peringkat ke setiap baris dan membagi hasil yang ditetapkan ke dalam partisi menggunakan "Umur" dan menyusunnya bergantung pada "Gaji". Pertanyaan ini telah mengambil semua rekod semasa berada di lajur "new_rank". Anda dapat melihat output pertanyaan ini di bawah. Ini telah menyusun jadual mengikut "Gaji" dan membaginya mengikut "Umur".

>> SELECT *, RANK () LEBIH (PARTISI MENGIKUT ASAL ORDER MENGIKUT Gaji) new_rank DARI data.pekerja;

MySQL DENSE_Rank ():

Ini adalah fungsi di mana, tanpa lubang, menentukan peringkat setiap baris dalam bahagian atau set hasil. Kedudukan baris paling kerap diperuntukkan mengikut urutan. Kadang-kadang, anda mempunyai kaitan di antara nilai-nilai, dan oleh itu ia ditugaskan ke peringkat yang tepat oleh peringkat yang padat, dan peringkat berikutnya adalah nombor berikutnya.

Contoh 01: DENSE_RANK Mudah ()

Anggaplah kita memiliki tabel "pegawai", dan Anda harus memberi peringkat pada lajur meja, "Nama", dan "Gaji" sesuai dengan Kolom "Nama". Kami telah membuat lajur baru "dens_Rank" untuk menyimpan penilaian rekod di dalamnya. Setelah menjalankan pertanyaan di bawah, kami mendapat hasil berikut dengan peringkat yang berbeza untuk semua nilai.

>> PILIH Nama, Gaji, DENSE_RANK () OVER (ORDER BY Name) dens_rank DARI data.pekerja;

Contoh 02: DENSE_RANK () Menggunakan BAHAGIAN

Mari kita lihat contoh lain yang membelah hasil yang ditetapkan menjadi segmen. Menurut sintaks di bawah ini, set yang dihasilkan dipartisi oleh frasa PARTITION BY dikembalikan oleh pernyataan FROM, dan kaedah DENSE_RANK () kemudian dilumurkan ke setiap bahagian menggunakan lajur "Nama". Kemudian, untuk setiap segmen, frasa ORDER BY smear untuk menentukan keharusan baris menggunakan lajur "Umur".

>> PILIH Nama, Umur, Gaji, DENSE_RANK () LEBIH (PARTISI MENGIKUT Nama PESANAN MENGIKUT Umur) new_rank DARI data.pekerja;

Setelah menjalankan pertanyaan di atas, anda dapat melihat bahawa kami mempunyai hasil yang sangat berbeza dibandingkan dengan kaedah Single dense_rank () dalam contoh di atas. Kami mendapat nilai berulang yang sama untuk setiap nilai baris, seperti yang anda lihat di bawah. Ini adalah ikatan nilai pangkat.

MySQL PERCENT_RANK ():

Ini sememangnya kaedah pemeringkatan peratusan (perbandingan peringkat) yang mengira baris dalam koleksi partisi atau hasil. Kaedah ini mengembalikan senarai dari skala nilai sifar hingga 1.

Contoh 01: PERCENT_RANK Sederhana ()

Dengan menggunakan jadual "pekerja", kita telah melihat contoh kaedah PERCENT_RANK () yang mudah. Kami mempunyai pertanyaan di bawah untuk ini. Lajur per_rank telah dihasilkan dengan kaedah PERCENT_Rank () untuk memberi peringkat hasil yang ditetapkan dalam bentuk peratusan. Kami telah mengambil data sesuai dengan urutan penyortiran lajur "Umur" dan kemudian kami telah menentukan nilai dari tabel ini. Hasil pertanyaan untuk contoh ini memberi kami peringkat peratusan untuk nilai-nilai seperti yang ditunjukkan dalam gambar di bawah.

>> SELECT *, PERCENT_RANK () OVER (ORDER BY Age) per_rank DARI data.pekerja;

Contoh 02: PERCENT_RANK () Menggunakan BAHAGIAN

Setelah melakukan contoh mudah PERCENT_RANK (), kini giliran klausa “PARTITION BY”. Kami telah menggunakan jadual "pekerja" yang sama. Mari kita lihat sekejap contoh lain yang membahagikan hasilnya menjadi beberapa bahagian. Diberikan dari sintaks di bawah, tembok tetapan yang dihasilkan oleh ungkapan PARTITION BY diganti dengan deklarasi FROM, dan juga kaedah PERCENT_RANK () kemudian digunakan untuk memberi peringkat setiap susunan baris dengan lajur "Nama". Dalam gambar yang dipaparkan di bawah, anda dapat melihat set hasilnya hanya mengandungi 0 dan 1 nilai.

>> SELECT *, PERCENT_RANK () LEBIH (BAHAGIAN MENGIKUT Gaji PESANAN MENGIKUT Nama) per_rank DARI data.pekerja;

Kesimpulan:

Akhirnya, kami telah melakukan ketiga fungsi peringkat untuk baris yang digunakan dalam MySQL, melalui shell klien baris perintah MySQL. Juga, kami telah mengambil kira klausa sederhana dan PARTITION BY dalam kajian kami.

5 Kad Tangkap Permainan Teratas
Kita semua telah melihat dan menyukai streaming permainan permainan di YouTube. PewDiePie, Jakesepticye, dan Markiplier hanyalah beberapa pemain terat...
Cara Membangunkan Permainan di Linux
Satu dekad yang lalu, tidak banyak pengguna Linux akan meramalkan bahawa sistem operasi kegemaran mereka suatu hari nanti akan menjadi platform permai...
Port Sumber Terbuka Mesin Permainan Komersial
Rekreasi enjin permainan sumber terbuka dan bebas platform boleh digunakan untuk bermain lama dan juga beberapa tajuk permainan yang baru-baru ini. Ar...