MySQL DENSE_RANK Function

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 clausola FROM in partizioni. La funzione DENSE_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 funzione DENSE_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

MySQL DENSE_RANK() function example

Per la dimostrazione useremo la tabella sales creata nel tutorial della funzione window.

Tabella delle vendite

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:

MySQL DENSE_RANK - Assegna la classifica ai dipendenti delle vendite

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 clausola ORDER 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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.