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 BY
specifică 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 BY
a împărțit seturile de rezultate în partiții folosind anul fiscal. - În al doilea rând, clauza
ORDER BY
a 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
.