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