Funzione di finestra Ntile PostgreSQL

Funzione di finestra Ntile PostgreSQL
I metodi della finestra in PostgreSQL sono stati gettati fuori per equiparare i dati divergenti e sono essenziali per i casi di utilizzo analitici e altri PostgreSQL. Il metodo Ntile () seguito dalla clausola over in PostgreSQL viene scartato per dividere le file organizzate in una serie un po 'come una serie di secchi graduati. I secchi non sono altro che una serie di gruppi classificati. Durante questo articolo, scoprirai come dividere le righe ordinate in una partizione in una determinata figura di secchi classificati usando la funzione PostgreSQL NTILE (). Il metodo Ntile () assegna un numero di secchio a ogni gruppo che inizia a 1 in un set, dimostrando il set a cui la riga ha il suo posto.

Sintassi:

>> ntile (bucket) su ([partizione per espressione di partizione,…] [ordEt per espressione di ordinamento]) [ASC | Disc],…]);

Prima di tutto, per comprendere il metodo ntile, accedi dalla shell PostgreSQL. Ecco perché provare a lanciare la shell della riga di comando PostgreSQL dalle applicazioni. Per lavorare su un altro server, immettere il nome di un server; Altrimenti, premi Invio. Se è necessario esercitarsi nel database precedentemente designato, E.G., Postgres, quindi premere Invio o altro, iscrivi un titolo di databank, E.G. 'test'. Per utilizzare una porta diversa da 5432, iscriverla; In caso contrario, lascialo così com'è, e premi ENT per andare avanti. Potrebbe richiedere di inserire il nome utente nel caso in cui sia necessario passare a un nuovo nome utente. Inserisci il nome utente; altro, basta premere Invio. Infine, è necessario inserire la password dell'utente attuale, per cambiare utilizzando la riga di comando utilizzando quell'utente specifico come sotto. Successivamente, voci efficaci di tutti i dati obbligatori, puoi iniziare a lavorare su Ntile.

Per iniziare a lavorare su Ntile, devi creare una nuova tabella utilizzando il comando Crea se non ne hai uno. Pensa attraverso la tabella "Dipendente" di seguito nel tuo database PostgreSQL chiamato "Test". Questa tabella contiene quattro colonne E.G., ID, nome, età e stipendio di un dipendente di una particolare azienda. Ogni colonna ha un totale di 10 righe, il che significa 10 record in ciascun campo della colonna.

>> Seleziona * dal dipendente;

All'inizio, dobbiamo capire il semplice concetto di recuperare i record da una tabella usando l'ordine per clausola. Abbiamo eseguito il comando Seleziona seguente senza usare Ntile per elaborare e comprendere brevemente il concetto. Recupera i record per le colonne; Nome, età e stipendio mentre ordina i record nell'ordine ascendente del campo "età". Puoi vedere che visualizzerà semplicemente i record come presentati nell'immagine.

>> Seleziona nome, età, stipendio dall'ordine dei dipendenti per età;

Uso di ntile () o più con ordine per clausola:

Supponendo la stessa tabella "dipendente", iniziamo a usare ntile () su clausola nel nostro esempio. In questo esempio, abbiamo selezionato le due colonne; Nome e stipendio, mentre ordina il risultato relativo all'ordine ascendente di una colonna "stipendio". Il risultato conterrà dati in cui l'età di un dipendente è superiore a 24 anni. Abbiamo definito il valore del secchio ntile come "3" perché vogliamo dividere le righe in 3 secchi, E.G., 1 a 3. Puoi vedere che le righe sono state divise con successo in 3 secchi uguali, contenenti 3 file in ogni secchio.

>> Seleziona nome, stipendio, ntile (3) oltre (ordine per salario) dal dipendente in cui età> '24';

Ora, facciamo un altro esempio mentre usi lo stesso tavolo "dipendente". Questa volta, vogliamo recuperare i record di tre colonne; Nome, età e stipendio usando la query seleziona nella shell del comando. Ci sono lievi cambiamenti nella clausola dove. Attualmente, abbiamo cercato i registri del "dipendente" della tabella in cui l'età è inferiore a 27 anni, il che otterrà solo i record con età inferiore a 27 anni. D'altra parte, non vi è alcun cambiamento nel valore del secchio, poiché è di nuovo 3. Provando il comando dichiarato, abbiamo trovato solo tre record, equamente divisi in 3 secchi come visualizzato nell'immagine.

>> Seleziona nome, età, stipendio, ntile (3) oltre (ordine per stipendio) da dipendente in cui età < '27';

Uso di ntile () o più con ordine e partizione per clausola:

Facciamo un esempio di ntile () oltre durante l'utilizzo di partizione e ordine per clausole contemporaneamente. Supponiamo che venga utilizzata la tabella invariata "dipendente" da un "test" di database. In questo esempio, devi selezionare le tre colonne; Nome, età e stipendio, mentre ordina nel modo ascendente di un campo "età". Inoltre, abbiamo usato la clausola della partizione per la colonna "stipendio", per fare partizioni di una tabella secondo questa colonna. Non esiste una condizione specifica che sia stata utilizzata in questa particolare query, il che significa che tutti i record della tabella "dipendente" verranno visualizzati. Il secchio ntile ha un valore di "3". Durante l'esecuzione della query sotto la dichiarazione, vedrai il risultato seguente. Le partizioni vengono eseguite in base ai valori distinti della colonna "stipendio". Tutti i valori della colonna "stipendio" sono distinti, ecco perché si trova in diverse partizioni tranne il valore "60000". Ciò significa che ogni partizione ha ottenuto 1 valore tranne uno. Dopodiché, tutte le file di partizione sono state classificate attraverso i secchi. Solo un secchio ha ottenuto il 2 ° grado.

>> Seleziona nome, età, stipendio, ntile (3) su (partizione per stipendio, ordine per età) dal dipendente;

Prendendo lo stesso esempio di ntile () con l'uso della partizione da e ordine per clausola con una clausola dove. Nella clausola Where, abbiamo definito la condizione, che afferma che gli unici record che saranno recuperati sono dove l'età del dipendente è inferiore a 27 anni. Abbiamo ottenuto solo 3 risultati con 2 partizioni in base alla colonna di età e "ntile" con ranghi.

>> Seleziona nome, età, stipendio, ntile (3) su (partizione per stipendio, ordine per età) da dipendente in cui età < '27';

Conclusione:

In questa guida, abbiamo discusso diversi esempi di funzioni NTILE. Puoi implementarli secondo la tua necessità.