MySQL DENSE_RANK Funktion

Sammanfattning: I den här handledningen kommer du att lära dig om MySQL DENSE_RANK()-funktionen och hur du använder den för att hitta rangordningen för en rad i en partition eller en resultatuppsättning.

Introduktion till MySQL DENSE_RANK-funktionen

DENSE_RANK() är en fönsterfunktion som tilldelar en rangordning för varje rad i en partition eller resultatuppsättning utan luckor i rangordningsvärden.

Rankningen av en rad ökas med ett från antalet distinkta rangvärden som kommer före raden.

Syntaxen för DENSE_RANK()-funktionen är följande:

Code language: SQL (Structured Query Language) (sql)

I den här syntaxen:

  • För det första delar PARTITION BY-klausulen upp de resultatmängder som produceras av FROM-klausulen i partitioner. Funktionen DENSE_RANK() tillämpas på varje partition.
  • För det andra anger ORDER BY-klausulen i vilken ordning raderna i varje partition som DENSE_RANK()-funktionen verkar på.

Om en partition har två eller flera rader med samma rangvärde kommer var och en av dessa rader att tilldelas samma rangvärde.

Till skillnad från RANK()-funktionen returnerar DENSE_RANK()-funktionen alltid på varandra följande rangvärden.

Antag att vi har en tabell t med några provdata enligt följande:

Code language: SQL (Structured Query Language) (sql)

Följande anvisning använder DENSE_RANK()-funktionen för att tilldela varje rad en rang:

Code language: SQL (Structured Query Language) (sql)

Här är resultatet:

MySQL DENSE_RANK Function Example

MySQL DENSE_RANK() function example

Vi kommer att använda tabellen sales som skapades i handledningen för fönsterfunktionen för demonstrationen.

försäljningstabell

I följande instruktion används DENSE_RANK()-funktionen för att rangordna försäljningsanställda efter försäljningsbelopp.

Code language: SQL (Structured Query Language) (sql)

Utmatningen ser ut på följande sätt:

MySQL DENSE_RANK - Tilldela rang till försäljningsanställda

I det här exemplet:

  • För det första delade PARTITION BY-klausulen upp resultatmängderna i partitioner med hjälp av räkenskapsår.
  • För det andra specificerade ORDER BY-klausulen ordningen för försäljningsanställda efter försäljning i fallande ordning.
  • För det tredje tillämpas DENSE_RANK()-funktionen på varje partition med den ordning för rader som specificeras av ORDER BY-klausulen.

I den här handledningen har du lärt dig hur du använder MySQL-funktionen DENSE_RANK() för att rangordna rader i varje partition i en resultatmängd.

  • Har du nytta av den här handledningen?
  • JaNej

Lämna ett svar

Din e-postadress kommer inte publiceras.