Summary: in questo tutorial, imparerete la funzione MySQL DENSE_RANK()
e come applicarla per trovare il rango della riga in una partizione o set di risultati.
Introduzione alla funzione MySQL DENSE_RANK
La DENSE_RANK()
è una funzione finestra che assegna un rango ad ogni riga in una partizione o set di risultati senza interruzioni nei valori di rango.
Il rango di una riga è aumentato di uno dal numero di valori di rango distinti che precedono la riga.
La sintassi della funzione DENSE_RANK()
è la seguente:
Code language: SQL (Structured Query Language) (sql)
In questa sintassi:
- Prima, la clausola
PARTITION BY
divide l’insieme dei risultati prodotti dalla clausolaFROM
in partizioni. La funzioneDENSE_RANK()
viene applicata ad ogni partizione. - In secondo luogo, la clausola
ORDER BY
specifica l’ordine delle righe in ogni partizione su cui opera la funzioneDENSE_RANK()
.
Se una partizione ha due o più righe con lo stesso valore di rango, a ciascuna di queste righe verrà assegnato lo stesso rango.
A differenza della funzione RANK()
, la funzione DENSE_RANK()
restituisce sempre valori di rango consecutivi.
Supponiamo di avere una tabella t
con alcuni dati campione come segue:
Code language: SQL (Structured Query Language) (sql)
La seguente dichiarazione usa la funzione DENSE_RANK()
per assegnare un rango ad ogni riga:
Code language: SQL (Structured Query Language) (sql)
Ecco il risultato:
MySQL DENSE_RANK() function example
Per la dimostrazione useremo la tabella sales
creata nel tutorial della funzione window.
La seguente dichiarazione usa la funzione DENSE_RANK()
per classificare gli impiegati delle vendite in base all’importo delle vendite.
Code language: SQL (Structured Query Language) (sql)
L’output è il seguente:
In questo esempio:
- Prima, la clausola
PARTITION BY
ha diviso i risultati in partizioni usando l’anno fiscale. - Secondo, la clausola
ORDER BY
ha specificato l’ordine dei dipendenti delle vendite per vendite in ordine decrescente. - Terzo, la funzione
DENSE_RANK()
viene applicata a ogni partizione con l’ordine delle righe specificato dalla clausolaORDER BY
.
In questo tutorial, hai imparato a usare la funzione DENSE_RANK()
di MySQL per classificare le righe in ogni partizione di un set di risultati.
- Questo tutorial è stato utile?
- SìNo