SQLite NTILE

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 ?

You might also like

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.