Da> dove> "gruppo per"> avendo> selezionare> distinto> ordine per> limite
Il funzionamento di PostgreSQL si trova all'interno della clausola "Where" e "Avere".
Sintassi
Seleziona la colonnaEsempio 1
Per comprendere il concetto del gruppo per funzione, usiamo un esempio qui. Nella tabella dei passeggeri, puoi vedere che i cognomi sono gli stessi per alcune persone. Ogni nome che è simile a un altro forma un gruppo e il loro pagamento viene aggiunto collettivamente contro ogni stesso nome. Questo è elaborato nell'esempio seguente.
>> Seleziona lname, somma (pagamento) dal gruppo passeggeri di LNAME;Il cognome del passeggero è selezionato con l'uso di una "somma" incorporata che prende il "pagamento" della colonna. E aggiungere il pagamento per quelle persone che hanno lo stesso nome. Ad esempio, viene aggiunto lo stipendio di "Javed" e "Saad". Considerando che per "Malik" e "Shams", è menzionato individualmente.
Allo stesso modo, considera un tavolo "ospedale". Vogliamo raggruppare la città per l'età. In questo esempio, una città esiste più di una volta in una colonna. Ogni città è raggruppata con lo stesso nome della città. Vengono aggiunte le età di ciascun gruppo della città e formano una sola riga.
Ospedale:
>> Select City, somma (età) dal gruppo ospedaliero per città;Esempio 2
In alternativa, se selezioniamo il cognome con l'ID dal passeggero della tabella, il risultato sarà una tabella diversa. Perché quando raggruppiamo entrambe le colonne insieme, visualizzerà il nome di ciascun passeggero perché l'ID per ogni passeggero, anche con un cognome comune, è diverso. La somma è calcolata in una colonna separata, ma il pagamento di ciascun passeggero è menzionato di fronte al suo nome perché il raggruppamento di lname non è fatto qui.
Questo è un esempio del gruppo per clausola con più colonne. Perché quando vengono selezionate più colonne per il raggruppamento, il valore risultante viene modificato rispetto al gruppo da una singola tabella.
>> Seleziona ID, LNAME, SUM (pagamento) dal gruppo passeggeri per ID, LNAME;Dall'output, noterai una cosa che in primo luogo, tutti quei lname non vengono visualizzati, e poi quelli che sono gli stessi sono menzionati nella tabella.
Esempio 3
Questo esempio ha una condizione di join e un gruppo per clausola. Man mano che viene utilizzato "join", significa che abbiamo usato due tabelle qui. Uno è "oggetto" e l'altro è "ordini".
Elementi:
Ordini:
Abbiamo usato un metodo di concatenazione (utilizzato per unire due stringhe) per unire i valori di due colonne della tabella "elementi" con "," e nominare la colonna collettivamente come "descrizione". È facoltativo; Potresti prenderli separatamente. In questa query, la parola chiave "usando" identifica la colonna specifica dall'altra tabella. L'indirizzo dalla tabella degli elementi è abbinato alla colonna dell'indirizzo della tabella "ordini". Questo viene fatto facendo un join tra due tavoli. Come i precedenti esempi, entrambe le colonne saranno selezionate dal gruppo per clausola.
>> Seleziona nome || '', || categoria come descrizione, indirizzo dagli elementi ordini di join interno utilizzando (indirizzo) per indirizzo, descrizione;È possibile osservare che verranno selezionate 5 righe con l'indirizzo degli articoli abbinato all'indirizzo degli ordini. E poi, la colonna Descrizione verrà formata con la colonna dell'indirizzo.
Allo stesso modo, c'è un altro esempio di concatenazione con il fattore di età in due tabelle. Uno è "passeggero" e l'altro è "lavoratore". La concatenazione è tra la prima e il cognome. Entrambi questi nomi sono separati attraverso lo spazio tra due nomi. Abbiamo preso una parte del tavolo dei lavoratori qui.
Lavoratore:
La query funzionerà in modo che il punto in cui il fname del lavoratore sia abbinato al passeggero, l'età del passeggero, viene visualizzato nella colonna di età.
>> Seleziona fname || "|| passeggero.LNAME come full_name, passeggero.Età dal passeggero interno interno un lavoratore utilizzando (fname) gruppo di full_name, passeggero.Ordine di età per passeggero.età;Si forma una riga. Il full_name viene creato unendo due colonne con spazio e l'indirizzo viene selezionato in cui il fname del passeggero corrisponde al fname del lavoratore.
Esempio 4
Questo esempio si occupa dell'utilizzo di una funzione Count () per contare gli ID della tabella "elementi". Questo è di nuovo gruppo per l'ID della tabella.
>> Seleziona ID, conteggio (ID) dal gruppo di elementi per ID;Le righe nella colonna ID sono divise in gruppi. Ogni gruppo viene conteggiato nella colonna che quante volte appare nella colonna. Nella tabella risultante, viene creata una nuova colonna con un nome di "conteggio" e i valori del conteggio sono scritti qui davanti a ciascun gruppo.
Via pgadmin
Ora abbiamo applicato alcuni esempi sul lato del cruscotto di PostgreSQL. Questi esempi sono diversi in qualche modo perché formano una riga subtotale dalla colonna originale quando uno degli elementi differisce dagli altri, quindi il valore viene restituito come null.
Considera il primo esempio; Qui, abbiamo creato un nome di colonna "All" che ha combinato due colonne. Un indirizzo e una categoria. "Tutto" la colonna conta i valori in entrambe le colonne collettivamente. La colonna dell'indirizzo è raggruppata come "Aggiungi" e la colonna di categoria è raggruppata separatamente come "Cat". Poiché i nomi di colonne di entrambe le tabelle utilizzati possono essere abbinati tra loro. Quindi ogni colonna della rispettiva tabella è accessibile da un oggetto specifico.
La condizione applicata sul comando dipende dall'ID e dal numero dell'ordine. Laddove sia questi ID che i numeri di ordine sono uguali, i dati vengono recuperati. Allo stesso modo, viene aggiunta anche una condizione aggiuntiva per il nome.
>> Seleziona o.Indirizzo, categoria, conta (*) come "tutto", raggruppamento (o.indirizzo) come "aggiungi", raggruppamento (categoria) come "gatto" dagli articoli I, ordini o dove i.order_no = o.order_id e i.Indirizzo = Gruppo 'Lahore' di Cube (O.indirizzo, categoria) ordine per 1, 2;Per la città di Lahore, viene selezionata una categoria. Ci sono 4 possibilità. A volte, il giocattolo è presente ma non l'indirizzo. E viceversa. Ma esiste un tempo in cui sono presenti sia la categoria che l'indirizzo.
Ora, se cambiamo la condizione del nome da una tabella e cambiamo la tabella con altri. "Elementi.l'indirizzo "è sostituito da" Ordine.indirizzo ”, quindi il risultato è diverso.
Conclusione
La clausola "PostgreSQL Group By" viene utilizzata per applicare qualsiasi operatore aggregato ai dati collettivi. Questo articolo utilizza Group per clausola con la funzione di conteggio, si unisce e selezione e raggruppamento di più colonne. Sono sicuro che questo tutorial sarà il miglior mezzo di comprensione per i lettori.