Buat Akun DQLab & Akses Kelas Data Science Python, R, SQL, Excel GRATIS!

Belajar MySQL Ranking Function & Contohnya

Belajar Data Science di Rumah 24-Februari-2023
https://dqlab.id/files/dqlab/cache/721af6ad09fed47659155880327cf88a_x_Thumbnail800.jpeg

MySQL menjadi salah satu tools yang populer untuk mengaplikasikan SQL. Selain proses instalasi yang mudah, dan dapat memproses query dengan cepat, fitur-fitur yang tersedia juga cocok untuk pemula. Ada beragam function juga yang bisa digunakan sesuai kebutuhan praktisi data. Misalnya, ranking function untuk mengetahui peringkat dari data yang akan dianalisis. Umumnya fungsi ini dibutuhkan untuk mengetahui peringkat teratas dalam masing-masing produk, atau mengetahui performa karyawan dalam setiap departemen, dan masih banyak lainnya.


MySQL memiliki tipe khusus untuk ranking function. Diantaranya dense_rank(), rank(), dan percent_range(). Tentu setiap fungsi memiliki kegunaan yang berbeda ya. Bagaimana kegunaan masing-masing? Yuk langsung belajar bersama dengan praktik contoh berikut!


1. Tipe-tipe Ranking Function

SQL

Ranking function pada MySQL digunakan untuk memberi peringkat setiap baris partisi.Ranking function juga merupakan bagian dari daftar window function pada MySQL. Ciri-ciri ranking function pada MySQL diantaranya:

  • Selalu digunakan dengan klausa OVER()

  • Ranking function pada MySQL mengadaptasi basis pengurutan dari ORDER BY

  • Peringkat dilakukan dari baris secara berurutan

  • Peringkat ke baris selalu dimulai dengan 1 untuk setiap partisi baru

Ada tiga tipe ranking function yang bisa dilakukan pada MySQL:

  • dense_rank() adalah fungsi yang menampilkan peringkat dari suatu baris dalam partisinya dengan memberikan angka yang sama pada data yang duplikat tetapi tidak memberikan gap pada data yang baru. Secara sederhana, jika ada data yang duplikat maka rankingnya sama. Kemudian untuk data selanjutnya yang berbeda merupakan ranking lanjutan dari sebelumnya.

  • rank() adalah fungsi yang menampilkan peringkat dari suatu baris dalam partisinya dengan angka yang sama pada data yang duplikat, dan juga memberikan gap pada data baru. Misal terdapat dua nilai yang merupakan ranking 1, maka untuk nilai baru selanjutnya adalah ranking 3.

  • percent_rank() adalah fungsi yang menampilkan peringkat persentil baris dalam suatu partisi yang berkisar dari 0 hingga 1. Fungsi ini memberitahu persentase nilai partisi kurang dari nilai pada baris saat ini, dan tidak termasuk nilai tertinggi.

Untuk memahami fungsi masing-masing, perhatikan contoh yang diberikan untuk setiap fungsi berikut. Kita akan menggunakan data dari tabel ‘hasil’ di bawah ini.

SQL


Baca juga : Saatnya Belajar SQL, Kenali Rekomendasi Query SQL Bagi Pemula


2. Contoh dense_rank()

Perhatikan query yang ditulis berikut.

SQL

Tabel akan dipartisi berdasarkan mapel. Kemudian ORDER BY digunakan untuk mengatur baris secara menurun setiap partisinya berdasarkan nilai. Sedangkan fungsi dense_rank() digunakan untuk memberi peringkat pada setiap partisi mapel. Sehingga akan diperoleh hasil seperti berikut.

SQL

Jika dilihat, nilai Bagas dan Raka sama sehingga rankingnya pun sama. Jika ada nilai yang lebih rendah dari Raka (kurang dari 85) maka rankingnya adalah 3. Pada kasus ini, ranking Pamungkas adalah 3. Tidak ada gap yang dilakukan meskipun terdapat nilai duplikat (di sini terdapat dua nilai dengan ranking 2).


3. Contoh rank()

Perhatikan query yang ditulis berikut.

SQL

Akan diperoleh hasil seperti berikut.

SQL

Perhatikan bahwa karena ada nilai duplikat, maka aturan peringkat yang dilakukan rank() adalah dengan memberikan gap. Bagas dan Raka memiliki peringkat 2, namun Pamungkas yang memiliki nilai rendah tepat di bawahnya memiliki ranking 4. Ini karena terdapat nilai duplikat yang kemudian memberikan gap pada ranking di bawahnya.


Baca juga : Catat! Ini 3 Keuntungan Belajar SQL dalam Mengolah Data


4. Contoh percent_rank()

Perhatikan query yang ditulis berikut.

SQL

Di sini, fungsi percent_rank() menghitung peringkat persentil dalam urutan naik dengan kolom nilai. Percent_rank dihitung menggunakan formula berikut: (peringkat - 1) / (baris - 1). Peringkat adalah peringkat dari setiap baris partisi yang dihasilkan menggunakan fungsi rank(). Baris mewakili banyaknya baris di partisi itu.

Diperoleh hasil seperti berikut.

SQL

Untuk bisa mengaplikasikan fungsi-fungsi yang ada di MySQL tentu kalian perlu tahu cara membuat query SQL. Nah apakah Sahabat DQ sudah memiliki pengetahuan tersebut? Tenang, DQLab punya solusinya. Kalian bisa belajar di DQLab dengan beragam modul pembelajaran yang dijamin mudah untuk kalian ikuti. Dimulai dari teori dasar hingga praktik di berbagai kasus. Yuk, segera Sign Up dan nikmati pembelajaran yang mudah dan menyenangkan!


Penulis: Dita Feby

Editor: Annisa Widya




Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Buat Akun


Atau

Sudah punya akun? Login