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() теңдиктерде бош орундарды эске алат.