Riepilogo: in questo tutorial, imparerai come utilizzare la funzione SQLiteRANK()
per calcolare i ranghi per le righe nel set di risultati di una query.
Introduzione alla funzione SQLite RANK ()
La funzioneRANK()
è una funzione finestra che assegna un rank a ciascuna riga del set di risultati di una query. Il rango di una riga è calcolato da uno più il numero di ranghi che viene prima di esso.,
Quanto segue mostra la sintassi della funzione RANK()
:
In questa sintassi:
- Innanzitutto, la clausola
PARTITION BY
divide le righe del set di risultati in partizioni. - In secondo luogo, la clausola
ORDER BY
specifica gli ordini delle righe in ciascuna partizione. - In terzo luogo, la funzione
RANK()
viene applicata a ciascuna riga di ciascuna partizione e ri-inizializzata quando si attraversa il confine della partizione.
Gli stessi valori di colonna riceveranno gli stessi ranghi., Quando più righe hanno lo stesso rango, il rango della riga successiva non è consecutivo. Questo è come la medaglia olimpica in cui se due atleti condividono la medaglia d’oro, non ci sarà medaglia d’argento.,913ee4e2a9″>
Terzo, query di dati RankDemo
tabella:
Quarto, utilizzare il RANK()
funzione per assegnare i ranghi per le righe del risultato serie di RankDemo
tabella:
Ecco l’output:
Come si può vedere chiaramente dall’uscita, la terza e la quarta fila e ricevere stesso valore perché hanno lo stesso valore., La quinta riga ottiene il rango 5 perché la funzioneRANK()
salta il rango 4.
SQLite RANK() esempi di funzioni
Per dimostrare la funzioneRANK()
, useremo la tabellatracks
dal database di esempio.,
Utilizzo di SQLite RANK() funzione con la clausola ORDER BY example
La seguente dichiarazione utilizza il RANK()
funzione per classificare i brani da loro lunghezze:
In questo esempio, abbiamo saltato il PARTITION BY
clausola, pertanto, il RANK()
funzione considera l’intero set di risultati di una singola partizione.
Innanzitutto, la clausolaORDER BY
ordina le tracce in base alla loro lunghezza (colonnaMilliseconds
).,
In secondo luogo, la funzioneRANK()
viene applicata a ciascuna riga del set di risultati considerando gli ordini delle tracce in base alla loro lunghezza.,
Utilizzo di SQLite RANK() con funzione di PARTIZIONE di esempio
La seguente dichiarazione utilizza il RANK()
funzione per assegnare una classifica per ogni traccia in ogni album:
L’immagine seguente mostra i risultati parziali:
In questo esempio:
- Primo
PARTITION BY
clausola divide le tracce in album. - Quindi, la clausola
ORDER BY
ordina le tracce in base alla loro lunghezza., - Infine, la funzione
RANK()
assegna un rango a ogni traccia in ogni album. Se l’album cambia, la funzioneRANK()
inizializza nuovamente il valore di rank.
è possibile trovare il secondo brano più lungo, in ogni album utilizzando il seguente subquery:
l’output è Il seguente:
In questo tutorial, hai imparato come usare SQLite RANK()
funzione per assegnare una classifica per ogni riga in un set di risultati.,
- Questo tutorial è stato utile ?
- Sì