Fungsi SQL DENSE_RANK()

Fungsi Sql Dense Rank



Fungsi jendela adalah fitur penting dalam SQL dan memainkan peran mendasar dalam perhitungan dan operasi data yang kompleks dalam database SQL. Salah satu fungsi dalam fungsi jendela SQL adalah kepadatan_rank().

Fungsi DENSE_RANK() memungkinkan kita menetapkan peringkat unik untuk setiap baris dalam kumpulan hasil berdasarkan nilai dalam satu kolom tertentu. Ini sangat mirip dengan fungsi rank() tetapi dengan sedikit perbedaan dalam cara fungsi tersebut menangani catatan duplikat.

Dalam tutorial ini, kita akan mempelajari cara kerja fungsi ini, sintaksis yang disediakan, dan bagaimana kita dapat menggunakannya dalam database.







Bagaimana itu bekerja

Mari kita mulai dengan menjelaskan cara kerja fungsi ini. Perlu diingat bahwa fungsinya adalah fungsi tingkat tinggi, dan kami tidak dapat menjelaskan implementasi yang mendasarinya.



Fungsi ini bekerja dengan menetapkan peringkat ke setiap baris dalam kumpulan hasil mulai dari peringkat 1 dan meningkat sebesar 1 untuk setiap nilai unik di kolom.



Baris dengan nilai serupa (duplikat) di kolom tertentu diberi peringkat yang sama dan baris berikutnya dengan nilai berbeda ditetapkan dengan peringkat berikutnya yang tersedia, tanpa ada celah.





Seperti yang telah kami sebutkan, fungsi tersebut tidak meninggalkan celah apa pun jika terdapat nilai duplikat yang membuatnya berbeda dari fungsi rank().

Penggunaan umum dari fungsi dose_rank() adalah melakukan operasi pemeringkatan. Misalnya, kita dapat menggunakannya untuk menemukan N record teratas, dll.



Sintaks Fungsi:

Berikut ini penjelasan sintaks fungsi Dens_Rank():

PADAT_RANK() LEBIH DARI (

[PARTISI OLEH partisi_ekspresi, ... ]

MEMESAN DENGAN sort_ekspresi [ASC | DES], ...

)

Dalam sintaks yang diberikan:

  1. Kita mulai dengan fungsi solid_rank() itu sendiri.
  2. Klausa OVER menandakan dimulainya spesifikasi fungsi jendela. Ini menentukan bagaimana pemeringkatan diterapkan dalam kumpulan hasil.
  3. PARTITION BY partisi_ekspresi adalah klausa opsional yang memungkinkan kita mempartisi kumpulan hasil ke dalam grup atau partisi berdasarkan satu atau lebih kolom. Pemeringkatan diterapkan secara terpisah pada setiap partisi dengan pengaturan ulang peringkat pada partisi baru.
  4. ORDER BY sort_expression menentukan urutan yang ingin kita gunakan untuk mengurutkan data di partisi yang dihasilkan.

Contoh data

Untuk mendemonstrasikan cara menggunakan fungsi densitas_rank(), mari kita mulai dengan tabel dengan contoh data. Dalam kasus kami, kami menggunakan contoh tabel “pesanan” sebagai berikut:

Contoh 1: Penggunaan Fungsi Dense_Rank()

Kita dapat menggunakan fungsi Dens_Rank() untuk menentukan peringkat pesanan yang dihasilkan berdasarkan harga. Pertimbangkan contoh kueri berikut:

PILIH

Id pemesanan,

nama pengguna_pelanggan,

produk_dibeli,

PADAT_RANK() LEBIH DARI (

MEMESAN OLEH

harga DISK

) peringkat_harga

DARI

perintah o;

Dalam contoh yang diberikan, kami menggunakan fungsi densitas_rank() untuk menentukan peringkat data berdasarkan harga pesanan. Kami menghilangkan klausa PARTITION BY karena kami tidak mengelompokkan data.

Output yang dihasilkan adalah sebagai berikut:

Contoh 2: PARTISI OLEH

Kita juga dapat menambahkan klausa PARTITION BY untuk mengelompokkan data ke dalam berbagai segmen seperti berdasarkan produk yang dibeli.

Contoh kuerinya adalah sebagai berikut:

PILIH

Id pemesanan,

nama pengguna_pelanggan,

produk_dibeli,

PADAT_RANK() LEBIH DARI (

partisi berdasarkan product_purchased

MEMESAN OLEH

harga DISK

) peringkat_harga

DARI

perintah o;

Ini harus mengelompokkan data ke dalam berbagai kelompok berdasarkan kelompok yang dihasilkan dan menerapkan peringkat untuk item di setiap kelompok.

Kesimpulan

Dalam postingan ini, kita mempelajari dasar-dasar menggunakan dan bekerja dengan fungsi jendela dose_rank() di SQL untuk menetapkan peringkat ke nilai berdasarkan kolom tertentu.