Rumah >pangkalan data >tutorial mysql >Kedudukan () vs DENSE_RANK () di Oracle: Apa perbezaannya?
Oracle Rank () dan Dense_Rank (): Perbandingan terperinci
fungsi Oracle dan RANK()
kedua -dua menetapkan pangkat ke baris berdasarkan kriteria yang ditentukan, tetapi metodologi ranking mereka berbeza dengan ketara. Artikel ini menjelaskan perbezaan ini dan menggambarkan aplikasi praktikal mereka. DENSE_RANK()
Fungsi: Melangkau pangkat untuk ikatan RANK()
fungsi
RANK()
fungsi: pangkat berturut -turut DENSE_RANK()
Contoh Illustrative: Mencari Gaji Tertinggi Nth DENSE_RANK()
Pertimbangkan jadual pekerja () untuk mencari gaji ketiga tertinggi. Kedua -dua fungsi boleh digunakan, tetapi hasilnya mungkin berbeza:
SQL ini menggunakan emptbl
dan
<code class="language-sql">SELECT empname, sal FROM emptbl ORDER BY sal DESC OFFSET 2 ROWS FETCH NEXT 1 ROWS ONLY;</code>dan
di sini bergantung kepada sama ada anda mahu melangkau pangkat sekiranya hubungan gaji. OFFSET
FETCH
RANK()
Pengendalian nilai null DENSE_RANK()
Pengendalian nilai bergantung pada klausa atau
dalam pernyataan. NULL
pangkat NULLS FIRST
nilai sebelum nilai bukan NULLS LAST
, dan sebaliknya untuk ORDER BY
. NULLS FIRST
NULL
NULL
memilih fungsi yang betul NULLS LAST
Gunakan apabila pangkat yang berbeza diperlukan, walaupun dengan ikatan. lebih baik apabila pangkat berturut -turut diperlukan, tanpa mengira nilai terikat. Pemilihan bergantung sepenuhnya pada keperluan analisis tertentu.
RANK()
pembelajaran selanjutnya DENSE_RANK()
Untuk pemahaman yang lebih komprehensif, rujuk dokumentasi Oracle rasmi:
Fungsi Oracle Rank ()
Atas ialah kandungan terperinci Kedudukan () vs DENSE_RANK () di Oracle: Apa perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!