Postgresql združi po

Postgresql Zdruzi Po



Klavzula skupine Postgresql je funkcija, ki se uporablja za združevanje/združevanje tistih vrstic v tabeli, ki imajo enake podatke. Ta člen se uporablja predvsem za odstranjevanje podvojenih podatkov in ohranjanje sočasnosti. Kadarkoli želimo izračunati vsoto ali kateri koli drug agregat, kot je AVG itd., se ta klavzula skupine vedno uporablja, saj se v PostgreSQL uporablja veliko klavzul. Toda med vsakim členom obstaja hierarhija.

FROM > WHERE > “GROUP BY” > HAVING > SELECT > DISTINCT > ORDER BY > LIMIT

Delovanje PostgreSQL je znotraj klavzule »kje« in »Imeti«.







Sintaksa



IZBERI stolpec

IZ dumytable

KJE [pogoji]

ZGRUPI PO prvem stolpcu, drugem stolpcu..

ORDER BY firstcolumn, secondcolumn.. ;

Primer 1



Za razumevanje koncepta skupine po funkciji uporabimo tukaj primer. V tabeli potnikov je razvidno, da so nekaterim priimki enaki. Vsako ime, ki je podobno drugemu, tvori skupino, njihovo plačilo pa se skupno doda vsakemu istemu imenu. To je podrobneje opisano v spodnjem primeru.





>> izberite lname, SUM (plačilo) od potnika GROUP BY lname;

Potnikov priimek se izbere z uporabo vgrajene funkcije 'SUM', ki prevzame stolpec 'plačilo'. In dodajte plačilo za tiste ljudi z istim imenom. Na primer, dodana je plača 'Javed' in 'saad'. Medtem ko sta za 'Malik' in 'Shams' omenjena posamično.



Podobno razmislite o mizi 'bolnišnica'. Mesto želimo združiti glede na starost. V tem primeru eno mesto obstaja več kot enkrat v stolpcu. Vsako mesto je združeno z istim imenom mesta. Starosti vsake skupine mesta se dodajo in tvorijo eno vrstico.

Bolnišnica:

>> izberite mesto, SUM (starost) iz bolnišnice GROUP BY city;

Primer 2

Druga možnost je, da iz tabele potnika izberemo priimek z ID-jem, bo rezultat druga tabela. Ker ko združimo oba stolpca skupaj, bo prikazano ime vsakega potnika, ker je ID za vsakega potnika, tudi s skupnim priimkom, drugačen. Vsota je izračunana v ločenem stolpcu, vendar je plačilo vsakega potnika navedeno pred njegovim imenom, ker tu ni združevanja imena in imena.

To je primer klavzule skupine z več stolpci. Ker ko je za združevanje izbranih več stolpcev, se končna vrednost spremeni v primerjavi s skupino z eno samo tabelo.

>> izberite id, lname, SUM (plačilo) od potnika GROUP BY id, lname;

Iz izhoda boste opazili eno stvar, da so najprej prikazana vsa tista imena, ki niso običajna, nato pa so v tabeli omenjena tista, ki so enaka.

Primer 3

Ta primer ima pogoj združevanja in klavzulo skupine. Ker se uporablja 'join', to pomeni, da smo tukaj uporabili dve tabeli. Ena je 'postavka', druga pa 'naročila'.

Predmeti:

naročila:

Uporabili smo metodo veriženja (ki se uporablja za združevanje dveh nizov), da združimo vrednosti dveh stolpcev tabele »predmetov« z »,« in skupaj poimenujemo stolpec »opis«. To ni obvezno; lahko jih vzamete ločeno. V tej poizvedbi ključna beseda “USING” identificira določen stolpec iz druge tabele. Naslov iz tabele postavk se ujema s stolpcem naslovov v tabeli »naročila«. To storite tako, da ustvarite spoj med dvema tabelama. Kot v prejšnjih primerih bosta oba stolpca izbrana s klavzulo GROUP BY.

>> izberite ime || ‘,’ || kategorija kot Opis, naslov iz elementov notranjega združevanja Naročila UPORABA (naslov) GROUP BY naslov, Opis;

Opazite lahko, da bo izbranih 5 vrstic z naslovom elementov, ki se ujemajo z naslovom naročil. Nato bo stolpec Opis oblikovan v skladu s stolpcem naslova.

Podobno obstaja še en primer veriženja s faktorjem starosti v dveh tabelah. Eden je »potnik«, drugi pa »delavec«. Vezenje je med imenom in priimkom. Obe imeni sta ločeni s presledkom med dvema imenoma. Tukaj smo vzeli del delovne mize.

Delavec:

Poizvedba bo delovala tako, da bo točka, kjer se ime delavca ujema s potnikom, starost potnika, prikazana v stolpcu starosti.

>> izberite fname || ‘ ‘ || lname kot polno_ime, age.potnika od potnika INNER pridruži se delavcu USING (fname) GROUP BY polno_ime, starost.potnika ORDER BY potnika.age;

Nastane ena vrsta. Polno_ime se ustvari tako, da se dva stolpca združita s presledkom, naslov pa se izbere tako, da se ime potnika ujema z imenom delavca.

Primer 4

Ta primer obravnava uporabo funkcije count () za štetje ID-jev tabele »items«. To je spet skupina glede na ID tabele.

>> Izberite id, ŠTETI (id) FROM elementov GROUP BY id;

Vrstice v stolpcu id so razdeljene v skupine. Vsaka skupina se v stolpcu šteje, kolikokrat se pojavi v stolpcu. V nastali tabeli se ustvari nov stolpec z imenom »count«, vrednosti števca pa so zapisane tukaj pred vsako skupino.

Vaš pgAdmin

Zdaj smo uporabili nekaj primerov na strani nadzorne plošče PostgreSQL. Ti primeri so na nek način drugačni, ker tvorijo vrstico vmesne vsote iz prvotnega stolpca, ko se kateri koli element razlikuje od drugih, zato je vrednost vrnjena kot NULL.

Razmislite o prvem primeru; tukaj smo ustvarili stolpec z imenom »VSE«, ki je združil dva stolpca. Naslov in kategorija. Stolpec »VSE« šteje vrednosti v obeh stolpcih skupaj. Stolpec naslova je združen kot »dodaj«, stolpec kategorije pa je ločeno združen kot »mačka«. Ker se imena stolpcev obeh uporabljenih tabel lahko ujemajo med seboj. Do vsakega stolpca ustrezne tabele torej dostopa določen objekt.

Pogoj, uporabljen pri ukazu, je odvisen od ID-ja in številke naročila. Če sta ta ID in številka naročila enaki, se podatki pridobijo. Podobno je dodaten pogoj dodan tudi za ime.

>> IZBERI o.naslov, kategorijo, število (*) KOT »VSE«, ZDRUŽEVANJE (o.naslov) KOT »dodaj« , ZDRUŽEVANJE (kategorija ) KOT »mačka« IZ elementov I, naročila o, kjer je i.št_naročila = o. order_id IN i.address= 'Lahore' GROUP BY CUBE (o.address, kategorija) ORDER BY 1, 2;

Za mesto Lahore je izbrana ena kategorija. Obstajajo 4 možnosti. Včasih je igrača prisotna, ne pa naslova. In obratno. Toda obstaja čas, ko sta prisotna tako kategorija kot naslov.

Zdaj, če spremenimo stanje imena iz tabele in zamenjamo tabelo z drugo. “Items.address” se nadomesti z “order.address”, potem je rezultat drugačen.

Zaključek

Klavzula »Postgresql group by« se uporablja za uporabo katerega koli zbirnega operatorja za zbirne podatke. Ta članek uporablja člen glede na skupino s funkcijo štetja, združevanjem ter izbiro in združevanjem več stolpcev. Prepričan sem, da bo ta vadnica najboljše sredstvo za razumevanje za bralce.