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() ითვალისწინებს გამოტოვებებს ტოლობის დროს.