Samenvatting: in deze tutorial leer je over de MySQL DENSE_RANK()
functie en hoe deze toe te passen om de rang van rij in een partitie of result set te vinden.
Inleiding tot MySQL DENSE_RANK functie
De DENSE_RANK()
is een venster functie die een rang toekent aan elke rij binnen een partitie of result set zonder gaten in de rang waarden.
De rang van een rij wordt verhoogd met één van het aantal verschillende rangwaarden die vóór de rij komen.
De syntaxis van de DENSE_RANK()
-functie is als volgt:
Code language: SQL (Structured Query Language) (sql)
In deze syntaxis:
- Eerst verdeelt de
PARTITION BY
-clausule de door deFROM
-clausule geproduceerde resultatenreeksen in partities. DeDENSE_RANK()
functie wordt op elke partitie toegepast. - Tweede, de
ORDER BY
clausule specificeert de volgorde van rijen in elke partitie waarop deDENSE_RANK()
functie werkt.
Als een partitie twee of meer rijen met dezelfde rang waarde heeft, zal elk van deze rijen dezelfde rang toegewezen krijgen.
In tegenstelling tot de RANK()
functie, retourneert de DENSE_RANK()
functie altijd opeenvolgende rang waarden.
Voorstel dat we een tabel t
hebben met enkele steekproeven als volgt:
Code language: SQL (Structured Query Language) (sql)
Het volgende statement gebruikt de functie DENSE_RANK()
om aan elke rij een rang toe te kennen:
Code language: SQL (Structured Query Language) (sql)
Hier volgt de uitvoer:
MySQL DENSE_RANK() functievoorbeeld
We zullen voor de demonstratie de sales
tabel gebruiken die in de window functiehandleiding is gemaakt.
De volgende verklaring gebruikt de functie DENSE_RANK()
om de verkoopmedewerkers te rangschikken op verkoopbedrag.
Code language: SQL (Structured Query Language) (sql)
De uitvoer ziet er als volgt uit:
In dit voorbeeld:
- Eerst heeft de
PARTITION BY
-clausule de resultatenreeksen in partities verdeeld op basis van het fiscale jaar. - Tweede, de
ORDER BY
clausule specificeerde de volgorde van de verkoopmedewerkers door verkoop in aflopende volgorde. - Derde, de
DENSE_RANK()
functie wordt toegepast op elke partitie met de rijen volgorde gespecificeerd door deORDER BY
clausule.
In deze tutorial hebt u geleerd hoe u de MySQL-functie DENSE_RANK()
kunt gebruiken om rijen in elke partitie van een resultaatverzameling te rangschikken.
- Was deze tutorial nuttig?
- JaNee