Sobes.tech
Middle

RANK ва DENSE_RANK чӣ фарқ дорад?

sobes.tech AI

Ҷавоб аз AI

RANK ва DENSE_RANK — SQL-да терезе функциялари бўлиб, улар терез ичидаги қаторларга ранглар беради, аммо бир хил қийматлар бўлганда (яъни, тенгликда) уларнинг хулқ-атвори фарқ қилади.

  • RANK(): Бир хил қийматларга бир хил ранг беради, аммо кейинги рангларни ўтказиб юбориб, уларни тақсимлайди. Масалан, агар икки қатор биринчи ўринни бўлса, иккала ҳам 1-рақам олади, кейинги қатор 3-рақам олади (2 ўтказиб юборилади).

  • DENSE_RANK(): Шунингдек, бир хил қийматларга бир хил ранг беради, аммо рангларни ўтказиб юбормайди. Шу мисолда, икки қатор 1-рақамда, кейинги қатор 2-рақам олади.

Масалан:

Қиймат RANK() DENSE_RANK()
100 1 1
100 1 1
90 3 2
80 4 3

Шу тариқа, DENSE_RANK() тыгыз ранглар беради, RANK() эса тенгликда бўшликларни ҳисобга олади.