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ì