Usando la funzione mysql dense_rank

Usando la funzione mysql dense_rank
La funzione mysql dense_rank () è una funzione che mostra il grado di riga nella sua partizione senza lacune nei valori di classificazione. Questa funzione è una funzione della finestra, il che significa che ha somiglianze con funzioni come row_number () e rank () funzioni.

Questo tutorial deve approfondire il modo in cui funziona la funzione densa MySQL e come possiamo usarla in varie operazioni di database. Se si desidera seguire insieme a questo tutorial, considera di scaricare il database di esempio Sakila dalla risorsa fornita di seguito:

https: // dev.mysql.com/doc/indice-altro.html

Uso di base

La funzione mysql dense_rank () visualizza i ranghi di una riga all'interno di una partizione senza lacune. I ranghi delle righe aumentano di un valore di 1 dal valore di rango univoco della riga precedente.

La sintassi generale della funzione Dense_rank () è come:

Seleziona col1 dense_rank () over (partizione di expr ordine di expr [asc | desc]) Rank_col_name da tb_name

Esaminiamo più da vicino la sintassi di query sopra.

La funzione Dense_rank () si lega alla clausola selezionata, che visualizzerà i ranghi delle righe dalla tabella specificata.

Il dense_rank () su sezioni restituisce il risultato della funzione dense_rank () e l'output mantenuto nel nome della colonna specificato.

La partizione per clausola divide i risultati restituiti dalla clausola da partizioni. La funzione Dense_rank () viene applicata a ciascuna partizione.

Infine, l'ordine per sezione specifica l'ordine delle righe set in ciascuna partizione.

Esempio di utilizzo

Usiamo un database di esempio per illustrare come possiamo usare la funzione Dense_rank (). Per questo esempio, useremo il database Sakila e, più specificamente, la tabella del film nel database Sakila.

Usando la funzione Dense_Rank (), possiamo classificare i film per il loro tasso di noleggio, come mostrato nella query seguente:

Usa Sakila;
Seleziona titolo, rilascio_year, valutazione, lunghezza, dense_rank () sopra (partizione di rilascio_year Order da rental_rate asc) rank_value dal film;

A causa dell'enorme quantità di dati nel database Sakila, riorganizzerò l'output per una lettura e illustrazione più facili.

L'output è sotto:



Se guardi attentamente l'output sopra, noterai che il risultato risultante varia dal grado da 1 a 3, che corrisponde ai valori di Rental_Rate nella tabella del film. I valori RENTAL_RATE sono:

  1. 0.99 - Rank 1
  2. 2.99 - Rank 2
  3. 4.99 - Rank 3

Nell'esempio sopra, abbiamo usato la partizione per clausola per dividere gli insiemi risultanti in varie partizioni, in questo caso, rilascio_year.

Successivamente, abbiamo usato l'ordine MySQL mediante l'istruzione per ordinare i film in base al tasso di noleggio in ordine crescente. Infine, abbiamo applicato la funzione Dense_Rank () su ciascuna partizione specificata nell'istruzione Ordine per istruzione.

Conclusione

In questo tutorial, abbiamo spiegato come funziona la funzione Dense_rank () in un database e abbiamo usato un esempio del mondo reale per illustrare come usarlo.

Puoi saperne di più su Dense_rank () e altre funzioni della finestra dalla risorsa fornita di seguito:

https: // dev.mysql.com/doc/refman/8.0/en/finestra-funzioni.html