Sobes.tech
Middle

Wat is het verschil tussen RANK en DENSE_RANK?

sobes.tech AI

Antwoord van AI

RANK en DENSE_RANK zijn windowfuncties in SQL die rangen toewijzen aan rijen binnen een venster, maar verschillen in gedrag bij gelijke waarden (d.w.z. bij 'gelijkspel').

  • RANK(): Ken dezelfde waarde dezelfde rang toe, maar slaat de volgende rangen over. Bijvoorbeeld, als twee rijen de eerste plaats delen, krijgen ze allebei rang 1, en de volgende rij krijgt rang 3 (rang 2 wordt overgeslagen).

  • DENSE_RANK(): Ken ook dezelfde rang toe aan gelijke waarden, maar slaat geen rangen over. In hetzelfde voorbeeld krijgen twee rijen met rang 1, de volgende krijgt rang 2.

Voorbeeld:

Waarde RANK() DENSE_RANK()
100 1 1
100 1 1
90 3 2
80 4 3

Zo geeft DENSE_RANK() dichte rangen zonder gaten, terwijl RANK() gaten in de rangorde erkent bij gelijke waarden.