Gruppo Postgres di giorno

Gruppo Postgres di giorno
Un'istruzione del gruppo Postgres viene utilizzata per creare gruppi di righe ottenute dall'istruzione selezionata. Questa clausola è utile quando dobbiamo utilizzare le funzioni integrate di Postgres con il comando seleziona. Ad esempio, usando sum (), count (), possiamo facilmente utilizzare questa clausola con l'istruzione SELECT. Questo tutorial funzionerà su questa clausola per raggruppare le righe della relazione in base al giorno dei dati inseriti.

Sintassi del gruppo per clausola

SELEZIONARE
colonna1,
name_of_function (colonna2)
DA
Name_of_table
RAGGRUPPA PER
colonna_1;

Il nome_of_function è la funzione integrata principalmente come la funzione di conteggio per contare il numero di righe che devono essere raggruppate di conseguenza. Mentre nel caso di due colonne da utilizzare in un'istruzione selezionata, utilizziamo entrambe le colonne in selezione e nel gruppo per clausola.

Implementazione del gruppo di giorno

Considera l'esempio seguente, in cui abbiamo una tabella chiamata un paese che contiene tutte le informazioni relative al paese, all'ID, al nome e al nome del continente. Applicheremo un comando Group-by sulla tabella.

Il gruppo per clausola viene applicato sulla colonna, quindi abbiamo selezionato la colonna del continente per raggruppare i paesi dello stesso continente. Innanzitutto, selezioniamo la colonna specifica che vogliamo raggruppare. io.e., continente. Quindi creiamo una nuova colonna per visualizzare il risultato in questo. Questa colonna risultante è chiamata Same_Area. La funzione integrata di PostgreSQL Count () viene utilizzata qui per contare quegli ID che hanno gli stessi continenti.

>> Seleziona Continente come Same_AREA, conta (ID) dal gruppo di paese per continente;

Ciò darà i seguenti risultati in un comando appena creato con la colonna di conteggio sull'esecuzione. Quindi il risultato mostra che due continenti appaiono 2 volte in una tabella. Questi due stessi continenti sono menzionati collettivamente per formare un gruppo utilizzando un gruppo per clausola.

Gruppo di giorno

Come abbiamo visto, un gruppo per clausola viene utilizzato con un nome di colonna specifico, secondo il quale esegue l'intera istruzione. Ora useremo alcuni esempi per raggruppare i dati della tabella collettivamente in base ai giorni dai dati che abbiamo usato nelle tabelle. Verrà creata una nuova relazione qui per implementare un nuovo esempio. Quindi, utilizzando il comando s create, viene creata una tabella denominata test con 3 colonne, ID, soggetto_name e test_date; Il tipo di dati per questa variabile viene utilizzato come data perché dobbiamo raggruppare i dati della tabella in base al giorno.

>> Crea test tabella (ID integer, soggetto_name varchar (10), test_date);

Dopo aver creato la tabella, dobbiamo inserire i valori nella tabella attraverso un'istruzione Insert. Durante l'inserimento di dati, si dovrebbe garantire che i valori inseriti contengano le stesse date in due o più righe per evitare qualsiasi conflitto mentre raggruppano le righe di conseguenza. Perché i dati diversi non saranno raggruppati. La colonna test_date contiene date in base al formato della data della funzione data incorporata e deve essere scritta in virgole invertite.

>> Insert in Test (Id, Subject_Name, Test_Date) VALORI ('1', 'English', '2022-11-22'), ('2', 'Chemistry', '2022-8-06'), ( '3', 'Socialogy', '2022-11-22'), ('4', 'Math', '2022-8-06'), ('5', 'English', '2022-03-08 '), (' 6 ',' fisica ',' 2022-06-19 ');

Per visualizzare i dati inseriti nella tabella, utilizzare un comando seleziona per visualizzare il record.

>> Seleziona * dal test;

Puoi vedere che alcune righe nelle colonne test_date sembrano simili.

Esempio 1
Useremo la query seleziona con la clausola del gruppo per combinare gli stessi valori.

>> Seleziona Date_Trunc ('Day', Test_Date) come COMBINE_TEST, COUNT (ID) come conteggio dal gruppo di test di Date_Trunc ('Day', test_date);

Questo comando contiene la funzione della data integrata per recuperare i giorni solo dal valore della data inserito. Questa funzione prende la parola chiave "giorno" per recuperare i giorni e il nome della colonna su cui questa funzione deve essere applicata come parametro. E quindi specificare una nuova colonna risultante; La funzione Count () conta gli ID totali che sono gli stessi. E la selezione è raggruppata dai giorni risultanti che vengono convertiti dalle date che abbiamo usato.

In esecuzione, vedrai il risultato sopra. Puoi vedere che quelle righe che hanno le stesse date sono combinate in gruppo.

Esempio 2
Ancora una volta considera l'esempio sopra, ma questa volta abbiamo raggruppato i dati utilizzando due colonne. Dobbiamo selezionare quei due elementi che vogliamo utilizzare con il gruppo per clausola; Altrimenti, PostgreSQL non esegui il comando. Abbiamo usato l'ID e la colonna Data.

>> Seleziona ID, Date_Trunc ('Day', Test_Date) come COMBINE_TEST, COUNT (ID) come conteggio dal gruppo di test per ID, date_trunc ('day', test_date);

Questa volta i valori non sono raggruppati. Perché quando usiamo il gruppo per clausola con più di una colonna, la clausola viene applicata per la prima. Quindi questa tabella risultante mostra che nessuna riga è raggruppata poiché tutti gli ID sono diversi. Ogni conteggio dell'ID mostra 1 per ogni riga.

Esempio 3
Le date che hanno lo stesso numero di giorno e numeri di mese diversi non sono raggruppate. È necessario avere giorni, mesi e anni uguali; Altrimenti, la fila ha lo stesso giorno, ma mesi e anni diversi non sono raggruppati in base ai giorni. Queste sono state conteggiate come righe separate. Per comprendere questo concetto, inseriremo di nuovo un'altra riga con la giornata lo stesso ma altri attributi di date.

Applicando lo stesso gruppo per clausola nell'istruzione SELECT, otterremo il risultato sotto citato. Puoi osservare che la riga appena immessa non è raggruppata.

Esempio 4
Gli esempi precedenti riguardano l'estrazione e il raggruppamento della giornata in base alla funzione della data. Ma ora useremo i nomi dei giorni della settimana come valore stringa. Useremo un gruppo per clausola per raggruppare le righe in base agli stessi giorni. Crea una nuova tabella denominata Match con ID, nome e il giorno della partita come attributi.

>> Crea tabella match (ID integer, nome varchar (10), day varchar (10));

Ora inseriremo i dati utilizzando un'istruzione Insert. I dati del giorno della colonna conterranno il nome di giorni con alcuni valori simili.

Ora applicheremo il gruppo per clausola per combinare gli stessi giorni della colonna del giorno come colonna risultante di un combine_match.

>> Seleziona giorno come combinamento_match, conteggio (ID) come conteggio dal gruppo Match per giorno;

Secondo il comando, gli stessi giorni sono raggruppati nella colonna. E quelli che non erano gli stessi sono menzionati in modo indipendente.

Ora inseriremo di nuovo una riga con lo stesso nome della partita con lo stesso nome del giorno. Le righe precedenti hanno dati con nomi di corrispondenza dissimili con gli stessi giorni.

Usa il gruppo per clausola insieme a due nomi di colonne e il giorno. Ora, solo quelle file con gli stessi nomi e giorni sono raggruppati. Mentre altri vengono visualizzati senza raggrupparsi.

>> Seleziona Nome, Day, Count (ID) dal Gruppo Match By Name Day;

Conclusione

L'articolo "Postgres Group by Day" descrive l'implementazione in linguaggio postgresql su Windows 10 utilizzando PSQL Shell. Abbiamo incluso le funzioni integrate sulle funzionalità della data e anche sui dati inseriti manualmente tramite comandi. Il gruppo per clausola aiuta a gestire i dati per mantenere lo stesso tipo di dati allineati e intatti.