MySQL DENSE_RANK funktion

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 af FROM-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, som DENSE_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

MySQL DENSE_RANK() funktionseksempel

Vi vil bruge tabellen sales, der blev oprettet i vinduesfunktionsvejledningen, til demonstrationen.

salgstabel

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:

MySQL DENSE_RANK - Tildel rang til salgsansatte

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 af ORDER 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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.