Funcția MySQL DENSE_RANK

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 clauza FROM în partiții. Funcția DENSE_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ția DENSE_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

MySQL DENSE_RANK() function example

Pentru demonstrație vom folosi tabelul sales creat în tutorialul cu funcția window.

tabelul vânzări

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:

MySQL DENSE_RANK - Assign Rank to sales employees

Î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 clauza ORDER 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

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.