Fungsi MySQL DENSE_RANK
Rangkuman : dalam tutorial Fungsi MySQL DENSE_RANK , Anda akan belajar tentang DENSE_RANK()fungsi MySQL dan bagaimana menerapkannya untuk menemukan peringkat baris dalam partisi atau kumpulan hasil.
Pengenalan DENSE_RANKfungsi MySQL
Ini DENSE_RANK()adalah fungsi Windows yang memberikan peringkat ke setiap baris dalam partisi atau hasil yang ditetapkan tanpa celah dalam nilai peringkat.
Pangkat baris dinaikkan satu dari jumlah nilai pangkat berbeda yang muncul sebelum baris.
Sintaks DENSE_RANK() fungsinya adalah sebagai berikut:
DENSE_RANK() OVER (
PARTITION BY <expression>[{,<expression>…}]
ORDER BY <expression> [ASC|DESC], [{,<expression>…}]
)
Bahasa kode: SQL (Structured Query Language) ( sql )
Dalam sintaks ini:
- Pertama, PARTITION BYklausa membagi kumpulan hasil yang dihasilkan oleh FROMklausa menjadi partisi. The DENSE_RANK()Fungsi diterapkan untuk setiap partisi.
- Kedua, ORDER BY klausa menentukan urutan baris di setiap partisi tempat DENSE_RANK()fungsi beroperasi.
Jika sebuah partisi memiliki dua atau lebih baris dengan nilai peringkat yang sama, setiap baris ini akan diberi peringkat yang sama.
Berbeda dengan RANK()fungsinya, DENSE_RANK()fungsi tersebut selalu mengembalikan nilai peringkat yang berurutan.
Misalkan kita memiliki tabel tdengan beberapa sample data sebagai berikut:
CREATE TABLE t (
val INT
);
INSERT INTO t(val)
VALUES(1),(2),(2),(3),(4),(4),(5);
SELECT
*
FROM
t;
Bahasa kode: SQL (Structured Query Language) ( sql )
Pernyataan berikut menggunakan DENSE_RANK()fungsi untuk menetapkan peringkat ke setiap baris:
SELECT
val,
DENSE_RANK() OVER (
ORDER BY val
) my_rank
FROM
t;
Bahasa kode: SQL (Structured Query Language) ( sql )
Inilah hasilnya:
DENSE_RANK()Contoh fungsi MySQL
Kami akan menggunakan salestabel yang dibuat di tutorial fungsi Windows untuk demonstrasi.
Pernyataan berikut menggunakan DENSE_RANK()fungsi untuk memberi peringkat karyawan penjualan berdasarkan jumlah penjualan.
SELECT
sales_employee,
fiscal_year,
sale,
DENSE_RANK() OVER (PARTITION BY
fiscal_year
ORDER BY
sale DESC
) sales_rank
FROM
sales;
Bahasa kode: SQL (Structured Query Language) ( sql )
Outputnya adalah sebagai berikut:
Dalam contoh ini:
- Pertama, PARTITION BYklausul membagi kumpulan hasil menjadi beberapa partisi menggunakan tahun fiskal.
- Kedua, ORDER BYklausul menentukan urutan karyawan penjualan menurut penjualan dalam urutan menurun.
- Ketiga, DENSE_RANK()fungsi tersebut diterapkan ke setiap partisi dengan urutan baris yang ditentukan oleh ORDER BYklausa.
Dalam tutorial ini, Anda telah mempelajari cara menggunakan DENSE_RANK()fungsi MySQL untuk menentukan peringkat baris di setiap partisi dari kumpulan hasil.

Seorang pengajar dan pembelajar yang mengurus lembaga pelatihan dan kursus komputer bernama LKP Naura