Rezumat: în acest tutorial, veți învăța despre funcția MySQL DENSE_RANK() și cum să o aplicați pentru a găsi rangul unui rând într-o partiție sau într-un set de rezultate.
Introducere la funcția MySQL DENSE_RANK
Funcția DENSE_RANK() este o funcție de fereastră care atribuie un rang fiecărui rând dintr-o partiție sau dintr-un set de rezultate fără goluri în valorile de clasificare.
Rankingul unui rând este mărit cu unu din numărul de valori distincte de rank care vin înaintea rândului.
Sintaxa funcției DENSE_RANK() este următoarea:
Code language: SQL (Structured Query Language) (sql)
În această sintaxă:
- În primul rând, clauza PARTITION BYîmparte seturile de rezultate produse de clauzaFROMîn partiții. FuncțiaDENSE_RANK()se aplică fiecărei partiții.
- În al doilea rând, clauza ORDER BYspecifică ordinea rândurilor din fiecare partiție asupra cărora operează funcțiaDENSE_RANK().
Dacă o partiție are două sau mai multe rânduri cu aceeași valoare de rang, fiecăruia dintre aceste rânduri i se va atribui același rang.
În mod diferit de funcția RANK(), funcția DENSE_RANK() returnează întotdeauna valori de rang consecutive.
Să presupunem că avem un tabel t cu câteva exemple de date, după cum urmează:
Code language: SQL (Structured Query Language) (sql)
Exemplul următor utilizează funcția DENSE_RANK() pentru a atribui un rang fiecărui rând:
Code language: SQL (Structured Query Language) (sql)
Iată rezultatul:

MySQL DENSE_RANK() function example
Pentru demonstrație vom folosi tabelul sales creat în tutorialul cu funcția window.

Declarația următoare utilizează funcția DENSE_RANK() pentru a clasifica angajații din vânzări în funcție de valoarea vânzărilor.
Code language: SQL (Structured Query Language) (sql)
Lovitura este următoarea:

În acest exemplu:
- În primul rând, clauza PARTITION BYa împărțit seturile de rezultate în partiții folosind anul fiscal.
- În al doilea rând, clauza ORDER BYa specificat ordinea angajaților din vânzări în funcție de vânzări în ordine descrescătoare.
- În al treilea rând, funcția DENSE_RANK()se aplică fiecărei partiții cu ordinea rândurilor specificată de clauzaORDER BY.
În acest tutorial, ați învățat cum să utilizați funcția MySQL DENSE_RANK() pentru a ordona rândurile din fiecare partiție a unui set de rezultate.
- A fost util acest tutorial?
- DaNu
.