Overview
Fungsi SQL RANK digunakan untuk memberikan ranking atau urutan kepada setiap baris dalam sebuah hasil query berdasarkan nilai satu atau lebih kolom. Fungsi ini menetapkan peringkat yang sama untuk nilai yang sama, dan peringkat selanjutnya meloncat berdasarkan jumlah ties.
SQL RANK merupakan sebuah fungsi yang berguna untuk mengurutkan data berdasarkan nilai tertentu.
Fungsi ini memungkinkan kamu menentukan ranking dari setiap baris dalam hasil query SQL. Misalnya, jika kamu memiliki data penjualan dari berbagai cabang, SQL RANK membantu menampilkan cabang dengan penjualan tertinggi sampai terendah.
Utamanya, SQL RANK digunakan saat ingin melakukan analisis komparatif atau kompetitif antara berbagai entitas dalam dataset. Dengan menggunakan SQL RANK, kamu bisa mendapatkan informasi lebih jelas dan mendalam mengenai posisi atau ranking relatif dari elemen-elemen dalam data yang dianalisis.
Artikel ini akan membahas secara mendetail tentang bagaimana RANK bekerja, contoh penggunaan, dan tips untuk memaksimalkan potensi dari fungsi ini dalam analisis data. Mari simak!
Kegunaan RANK di SQL
Pada dasarnya, SQL RANK mengurutkan data dan memberikan ranking berdasarkan kriteria yang ditetapkan. RANK sangat berguna dalam menangani data besar, memudahkan analisis perbandingan yang cepat dan akurat.
Berikut beberapa fungsi utama dari RANK di SQL:
- Penentuan ranking: RANK mengalokasikan nomor ranking sama untuk baris dengan nilai yang sama. Nomor ranking akan meloncat apabila ada nilai yang sama (misalnya, jika dua baris berperingkat pertama, baris berikutnya akan berperingkat ketiga).
- Analisis komparatif: memudahkan perbandingan performa atau hasil antar kategori atau entitas, seperti membandingkan penjualan antar cabang.
- Segmentasi data: membantu dalam mengelompokkan data ke dalam berbagai segmen atau kategori berdasarkan ranking, yang bermanfaat untuk analisis lanjutan.
- Optimasi query: menggunakan RANK dapat meningkatkan efisiensi query dengan memfilter atau membatasi data yang diolah, khususnya dalam kasus database besar.
Perbedaan RANK dan DENSE_RANK di SQL
RANK dan DENSE_RANK adalah dua fungsi yang sering digunakan dalam SQL untuk memberikan ranking pada hasil query, tetapi keduanya bekerja sedikit berbeda satu sama lain. Berikut tabel perbedaan utama antara kedua fungsi ini:
Sintaks RANK di SQL
Untuk menggunakan fungsi RANK dalam SQL, kamu perlu memahami bagaimana sintaksnya bekerja:
Mari kita bahas masing-masing komponen:
- RANK() OVER (ORDER BY kolom_yang_diinginkan): fungsi RANK diaplikasikan dengan klausa OVER, yang menentukan bagaimana data akan diurutkan. ORDER BY kolom_yang_diinginkan menetapkan kolom yang akan dipakai untuk mengurutkan data. Data diurutkan, dan RANK diberikan berdasarkan urutan ini.
- AS nama_alias_rank: alias digunakan untuk memberikan nama sementara pada kolom output yang berisi nilai ranking, sehingga memudahkan dalam referensi lebih lanjut.
- FROM nama_tabel: menunjukkan tabel dari mana data diambil.
- WHERE kondisi: opsional, digunakan untuk menyaring data yang ingin dianalisis berdasarkan kriteria tertentu.
Cara dan Contoh Menggunakan RANK di SQL
Berikut langkah-langkah umum dalam menggunakan RANK di SQL:
- Tentukan kolom untuk pengurutan: pertama, tentukan kolom yang akan kamu gunakan sebagai dasar untuk ranking. Ini bisa berdasarkan penjualan, skor, frekuensi, atau metrik lain yang relevan dengan analisismu.
- Gunakan Klausa OVER(): fungsi RANK membutuhkan klausa OVER() untuk menentukan bagaimana ranking harus dihitung. Di dalam klausa OVER(), kamu akan menggunakan ORDER BY untuk menentukan urutan pengurutan data—ascending (ASC) atau descending (DESC).
- Berikan alias untuk kolom ranking: sering kali berguna untuk memberikan nama alias kepada kolom output yang berisi nilai peringkat, memudahkan identifikasi kolom dalam hasil query.
- Menyertakan RANK dalam query SELECT: tambahkan fungsi RANK ke dalam query SELECT kamu untuk menghasilkan kolom ranking berdasarkan data yang diurutkan.
Misalkan kita memiliki dataset penjualan produk berikut:
Penjelasan:
- nama_produk dan jumlah_terjual adalah kolom yang dipilih untuk ditampilkan.
- RANK() OVER (ORDER BY jumlah_terjual DESC) menghitung ranking berdasarkan kolom jumlah_terjual, diurutkan dari tertinggi ke terendah.
- AS peringkat memberi nama alias pada kolom output yang menunjukkan ranking dari masing-masing produk.
Output:
FAQ (Frequently Asked Questions)
Bagaimana cara menggunakan RANK dengan lebih dari satu kolom dalam ORDER BY?
Menggunakan fungsi RANK dengan lebih dari satu kolom dalam klausa ORDER BY memungkinkan kamu mengurutkan data berdasarkan beberapa kriteria secara bersamaan. Ini sangat berguna ketika kamu ingin memprioritaskan satu kriteria tetapi juga mempertimbangkan kriteria lain untuk penentuan peringkat.
Bagaimana meng-handle ties (nilai yang sama) saat menggunakan RANK?
Saat menggunakan fungsi RANK di SQL dan terdapat baris yang memiliki nilai sama pada kolom yang menjadi dasar pengurutan, RANK akan memberikan nomor ranking sama untuk semua baris tersebut.
Namun, hal yang penting untuk diperhatikan adalah setelah ada ties, ranking untuk baris selanjutnya akan "meloncat" sesuai dengan jumlah ties. Ini berarti jika dua baris mendapatkan ranking kedua, baris berikutnya akan langsung mendapatkan ranking keempat.
Bagaimana RANK bekerja dengan data yang null?
Ketika kamu menggunakan fungsi RANK dalam SQL, nilai null diperlakukan secara khusus.
Secara umum, RANK akan menempatkan baris yang memiliki nilai null pada kolom yang digunakan untuk pengurutan di bagian akhir hasil ranking, jika pengurutan dilakukan secara ascending (dari yang terkecil ke terbesar).
Sementara untuk pengurutan secara descending (dari yang terbesar ke terkecil), nilai null juga umumnya ditempatkan di akhir.
Dapatkah RANK digunakan bersamaan dengan fungsi agregat lainnya?
Ya, fungsi RANK dapat dipakai bersamaan dengan fungsi agregat lainnya dalam SQL seperti SUM, AVG, COUNT, MAX, dan MIN, yang memungkinkan analisis data lebih kompleks dan mendalam.
Penggunaan gabungan ini bermanfaat dalam skenario di mana kamu ingin memberikan ranking pada hasil agregasi dari suatu dataset. Hal ini biasanya dilakukan dalam dua langkah utama:
- Menghitung agregasi: pertama, hitung nilai agregat yang diinginkan menggunakan fungsi seperti SUM atau AVG. Hal ini sering kali dilakukan dalam subquery atau menggunakan klausa WITH untuk mempersiapkan data.
- Penerapan RANK: setelah nilai agregat dihitung, fungsi RANK diaplikasikan pada hasilnya untuk memberikan peringkat berdasarkan nilai-nilai tersebut.
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)