Riepilogo: in questo tutorial, imparerai come usare la funzione SQLite NTILE()
per dividere un set di risultati in un numero di bucket e assegnare un numero di bucket a ciascuna riga.
Introduzione alla funzione SQLite NTILE ()
SQLite NTILE()
la funzione è una funzione finestra che divide un set di risultati ordinato in un numero di bucket da un’espressione specificata e assegna un numero di bucket appropriato a ciascuna riga.
Quanto segue mostra la sintassi della funzione NTILE()
:
In questa sintassi:
espressione
expression
può essere un intero positivo letterale o qualsiasi espressione valida che si risolve in un intero positivo.
La funzione NTILE()
assegna numeri da 1 al valore di expression
a ciascuna riga. Il numero di righe nei bucket può differire al massimo di 1. Il resto del numero di righe divise per bucket viene assegnato a ciascun bucket, a partire dal bucket 1.
Ad esempio, se si dispone di 10 righe e 4 bucket. Ogni secchio avrà 2 righe. Il resto di 10/4 è 2. Quindi il primo bucket avrà 2 + 1 = 3 righe, il secondo bucket avrà anche 3 righe.
L’immagine seguente illustra l’idea:
Se il valore dell’espressione è maggiore del numero di righe, la funzione NTILE()
riempirà il numero di bucket pari al numero di righe. Quindi, i secchi rimanenti saranno vuoti.
Ad esempio, se si dispone di 10 righe e 11 bucket, a ciascuna riga verrà assegnato un numero di bucket da 1 a 10. L’undicesimo secchio non avrà fila.
Si noti che non è possibile utilizzare una sottoquery o una funzione finestra in expression
.
PARTIZIONE PER
La clausola PARTITION BY
divide i set di risultati in partizioni a cui si applica la funzione NTILE
.
ORDINA PER
La clausola ORDER BY
specifica l’ordine delle righe in ogni partizione a cui si applica NTILE()
.
Esempio di funzione SQLite NTILE ()
Useremo la tabella tracce dal database di esempio per dimostrare la funzione NTILE()
:
Utilizzo della funzione SQLite NTILE () con ORDER BY example
La seguente istruzione utilizza la funzione NTILE()
per dividere in 4 bucket i valori nella colonna Milliseconds
della tabella tracks
dell’album 1.
La colonna Milliseconds
ha 10 valori in questo album, quindi i due valori aggiuntivi, che sono il resto di 10/4, sono distribuiti ai bucket 1 e 2, che quindi hanno più valore dei bucket 3 o 4.
Ecco l’output:
Utilizza SQLite NTILE() con funzione di PARTIZIONE clausola esempio
La seguente dichiarazione utilizza il NTILE()
funzione per dividere le tracce di ogni album in 3 secchi per i valori della Bytes
colonna:
l’immagine seguente mostra L’output:
In questo esempio, il PARTITION BY
clausola distribuite le righe in partizioni o dischi. La clausola ORDER BY
ha ordinato le tracce in ogni album in base alle loro dimensioni in byte. E la funzione NTILE()
ha assegnato un numero di bucket a ciascuna traccia e reimpostato il numero di bucket per ogni album.
In questo tutorial, hai imparato come utilizzare la funzione SQLite NTILE()
per dividere un set di risultati in un numero di bucket e assegnare un numero di bucket a ciascuna riga.
- Questo tutorial è stato utile ?
- Sì