Gruppo Postgres per ora con il tempo

Gruppo Postgres per ora con il tempo
Un gruppo Postgres per clausola viene utilizzato per dividere le righe ottenute dall'istruzione selezionata nei gruppi. Usando un gruppo per clausola, possiamo elencare i dati facendoli apparire nella tabella contemporaneamente. Questa clausola contiene sempre un nome di colonna. Il gruppo Postgres a ora.

Sintassi

SELEZIONARE
colonna1,
Funzione (colonna2)
DA
Name_of_table
RAGGRUPPA PER
Colonna1;

Possiamo anche usare più di una colonna nel comando.

Implementazione del gruppo per clausola

Per spiegare il concetto di un gruppo per clausola, considera la tabella seguente, denominata client. Questa relazione viene creata per contenere gli stipendi di ciascun cliente.

>> Seleziona * dal client;

Applicheremo un gruppo per clausola usando una singola colonna "stipendio". Una cosa che dovrei menzionare qui è che la colonna che utilizziamo nell'istruzione selezionata deve essere menzionata nel gruppo per clausola. Altrimenti, causerà un errore e il comando non verrà eseguito.

>> selezionare lo stipendio dal gruppo clienti per stipendio;

Puoi vedere che la tabella risultante mostra che il comando ha raggruppato quelle righe che hanno lo stesso stipendio.

Ora abbiamo applicato quella clausola su due colonne utilizzando un conteggio delle funzioni incorporato () che conta il numero di righe applicate dall'istruzione SELECT, quindi il gruppo per clausola viene applicato per filtrare le righe combinando le stesse righe salariali. Puoi vedere che le due colonne che si trovano nell'istruzione selezionata vengono utilizzate anche nella clausola di gruppo.

>> Seleziona stipendio, conteggio (stipendio) dal gruppo clienti per stipendio;

Gruppo per ora

Crea una tabella per dimostrare il concetto di un gruppo per clausola su una relazione di Postgres. La tabella denominata class_time viene creata con l'ID, il soggetto e C_period. Sia l'ID che l'oggetto hanno una variabile tipo di dati di intero e varchar e la terza colonna contiene il tipo di dati incorporato in quanto dobbiamo applicare il gruppo per clausola sulla tabella per recuperare la parte dell'ora da tutto il tempo dichiarazione.

>> Crea table class_time (ID integer, soggetto varchar (10), c_period time);

Dopo aver creato la tabella, inseriremo i dati nelle righe utilizzando un'istruzione Insert. Nella colonna C_period, abbiamo aggiunto tempo utilizzando il formato standard del tempo "HH: mm: ss" che deve essere racchiuso in comas invertiti. Per creare il gruppo di clausola lavorando su questa relazione, dobbiamo inserire i dati in modo che alcune righe nella colonna C_period si abbinino in modo che queste righe possano essere raggruppate facilmente.

>> inserisci in class_time (id, soggetto, c_period) valori (2, "matematica", "03:06:27"), (3, "inglese", '11: 20: 00 '), (4,' s.Studies ', '09: 28: 55'), (5, 'Art', '11: 30: 00 '), (6,' Persian ', '00: 53: 06');

Sono inserite 6 righe. Visualizzeremo i dati inseriti utilizzando un'istruzione selezionata.

>> Seleziona * da class_time;

Esempio 1

Per procedere ulteriormente nell'implementazione di un gruppo per clausola per ora della parte del timestamp, applicheremo un comando selezionato nella tabella. In questa query, viene utilizzata una funzione Date_Trunc. Questa non è una funzione creata dall'utente ma è già presente in Postgres da utilizzare come funzione integrata. Ci vorrà la parola chiave "Hour" perché ci occupiamo di recuperare un'ora e, in secondo luogo, la colonna C_period come parametro. Il valore risultante da questa funzione integrata utilizzando un comando Select passerà attraverso la funzione Count (*). Questo conterrà tutte le righe risultanti, quindi tutte le righe saranno raggruppate.

>> Seleziona date_trunc ('hour', c_period), count (*) dal gruppo Class_time di 1;

La funzione date_trunc () è la funzione troncata che viene applicata al timestamp per troncare il valore di input in granularità come secondi, minuti e ore. Quindi, secondo il valore risultante ottenuto attraverso il comando, due valori che hanno le stesse ore vengono raggruppati e contati due volte.

Una cosa dovrebbe essere annotata qui: la funzione troncata (ora) si occupa solo della porzione dell'ora. Si concentra sul valore più a sinistra, indipendentemente dai minuti e dai secondi utilizzati. Se il valore dell'ora è lo stesso in più di un valore, la clausola di gruppo ne creerà un gruppo. Ad esempio, 11:20:00 e 11:30:00. Inoltre, la colonna di date_trunc taglia la parte ora dal timestamp e visualizza la parte dell'ora solo mentre il minuto e il secondo è '00'. Perché facendo questo, il raggruppamento può essere fatto solo.

Esempio 2

Questo esempio si occupa dell'utilizzo di un gruppo per clausola lungo la funzione da data_trunc (). Viene creata una nuova colonna per visualizzare le righe risultanti con la colonna di conteggio che conterà gli ID, non tutte le righe. Rispetto all'ultimo esempio, il segno asterisco viene sostituito con l'ID nella funzione di conteggio.

>> Seleziona date_trunc ('hour', c_period) come time_table, conta (id) come conteggio dal gruppo Class_time di Date_trunc ('Hour', C_period);

I valori risultanti sono gli stessi. La funzione Trunc ha troncato la parte dell'ora dal valore temporale, e altrimenti la parte è dichiarata zero. In questo modo, il raggruppamento dell'ora è dichiarato. Il postgreSQL ottiene l'ora corrente dal sistema su cui è stato configurato il database PostgreSQL.

Esempio 3

Questo esempio non contiene la funzione trunc_date (). Ora prenderemo le ore dal momento usando una funzione di estrazione. Extract () Funzioni funzionano come il trunc_date nell'estrazione della parte rilevante avendo l'ora e la colonna mirata come parametro. Questo comando è diverso nel lavoro e mostra i risultati in aspetti della fornitura di ore solo. Rimuove la porzione di minuti e secondi, a differenza della funzione trunc_date. Utilizzare il comando Seleziona per selezionare ID e soggetto con una nuova colonna che contiene i risultati della funzione Extract.

>> Seleziona ID, soggetto, estratto (ora da C_period) come ora da Class_Time;

Puoi osservare che ogni riga viene visualizzata avendo le ore di ogni volta nella rispettiva riga. Qui non abbiamo usato il gruppo per clausola per elaborare il funzionamento di una funzione extract ().

Aggiungendo un gruppo per clausola usando 1, otterremo i seguenti risultati.

>> Seleziona estratto (ora da C_period) come ora dal gruppo Class_Time di 1;

Poiché non abbiamo usato alcuna colonna nel comando Seleziona, quindi verrà visualizzata solo la colonna dell'ora. Questo conterrà ora le ore nella forma raggruppata. Sia 11 che 9 vengono visualizzati una volta per mostrare la forma raggruppata.

Esempio 4

Questo esempio si occupa dell'utilizzo di due colonne nell'istruzione SELECT. Uno è il c_period, per visualizzare il tempo e l'altro è appena creato come un'ora per mostrare solo le ore. Il gruppo per clausola viene anche applicato al C_period e alla funzione di estratto.

>> Seleziona _period, estratto (ora da c_period) come ora dal gruppo Class_time per estratto (ora da C_period), c_period;

Conclusione

L'articolo "Postgres Group by Hour With Time" contiene le informazioni di base relative al gruppo per clausola. Per implementare il gruppo per clausola con ora, dobbiamo utilizzare il tipo di dati di tempo nei nostri esempi. Questo articolo è implementato in PostgreSQL Database PSQL Shell installato su Windows 10.