Bagikan melalui


Fungsi rank jendela peringkat

Berlaku untuk:check marked yes Databricks SQL check marked yes Databricks Runtime

Mengembalikan peringkat nilai dibandingkan dengan semua nilai di partisi.

Sintaks

rank()

Argumen

Fungsi ini tidak membutuhkan argumen.

Kembali

Sebuah INTEGER.

Klausul OVER dari fungsi jendela harus menyertakan klausul ORDER BY.

Berbeda dengan fungsi dense_rank, pangkat akan menghasilkan celah pada urutan peringkat. Tidak seperti row_number, pangkat tidak memutuskan hubungan.

Jika urutannya tidak unik, duplikatnya berbagi posisi sebelumnya yang relatif sama.

Contoh

> SELECT a,
         b,
         dense_rank() OVER(PARTITION BY a ORDER BY b),
         rank() OVER(PARTITION BY a ORDER BY b),
         row_number() OVER(PARTITION BY a ORDER BY b)
    FROM VALUES ('A1', 2), ('A1', 1), ('A2', 3), ('A1', 1) tab(a, b);
 A1 1   1   1   1
 A1 1   1   1   2
 A1 2   2   3   3
 A2 3   1   1   1