Summary: I denne tutorial lærer du om MySQL DENSE_RANK()
funktionen, og hvordan du anvender den til at finde rang for rækken i en partition eller et resultatsæt.
Indledning til MySQL DENSE_RANK funktion
DENSE_RANK()
er en vinduesfunktion, der tildeler en rang til hver række i en partition eller et resultatsæt uden huller i rangordningsværdier.
Rangen for en række øges med én fra antallet af distinkte rangværdier, der kommer før rækken.
Syntaksen for DENSE_RANK()
-funktionen er som følger:
Code language: SQL (Structured Query Language) (sql)
I denne syntaks:
- Først opdeler
PARTITION BY
-klausulen de resultatsæt, der er produceret afFROM
-klausulen, i partitioner.DENSE_RANK()
-funktionen anvendes på hver partition. - For det andet angiver
ORDER BY
-klausulen rækkefølgen af rækker i hver partition, somDENSE_RANK()
-funktionen opererer på.
Hvis en partition har to eller flere rækker med samme rangværdi, vil hver af disse rækker få tildelt den samme rang.
I modsætning til RANK()
-funktionen returnerer DENSE_RANK()
-funktionen altid på hinanden følgende rangværdier.
Sæt, vi har en tabel t
med nogle stikprøvedata som følger:
Code language: SQL (Structured Query Language) (sql)
Den følgende anvisning bruger DENSE_RANK()
-funktionen til at tildele en rang til hver række:
Code language: SQL (Structured Query Language) (sql)
Her er resultatet:
MySQL DENSE_RANK() funktionseksempel
Vi vil bruge tabellen sales
, der blev oprettet i vinduesfunktionsvejledningen, til demonstrationen.
Den følgende anvisning bruger DENSE_RANK()
-funktionen til at rangordne de ansatte i salgsafdelingen efter salgsbeløb.
Code language: SQL (Structured Query Language) (sql)
Opdatet er som følger:
I dette eksempel:
- Først delte
PARTITION BY
-klausulen resultatsættene op i partitioner ved hjælp af regnskabsår. - For det andet angav
ORDER BY
-klausulen rækkefølgen af salgsmedarbejdere efter salg i faldende rækkefølge. - For det tredje anvendes
DENSE_RANK()
-funktionen på hver partition med den rækkefølge, der er angivet afORDER BY
-klausulen.
I denne vejledning har du lært at bruge MySQL-funktionen DENSE_RANK()
til at rangordne rækker i hver partition i et resultatsæt.
- Blev denne vejledning brugt?
- JaNej