Postgresql-ryhmä

Postgresql Ryhma



Postgresql group by lause on ominaisuus, jota käytetään yhdistämään/yhdistämään ne taulukon rivit, joilla on samat tiedot. Tätä lauseketta käytetään pääasiassa päällekkäisten tietojen poistamiseen ja samanaikaisuuden ylläpitämiseen. Aina kun haluamme laskea summan tai minkä tahansa muun aggregaatin, kuten AVG:n jne., tätä lauseryhmää käytetään aina, koska PostgreSQL:ssä käytetään monia lauseita. Mutta jokaisen lauseen välillä on hierarkia.

FROM > WHERE > 'RYHMÄ PERUSTA' > HAVING > SELECT > DISTINCT > TILAA > RAJOITUS

PostgreSQL:n toiminta perustuu 'where'- ja 'Having'-lauseeseen.







Syntaksi



VALITSE sarake

Dumytableista

MISSÄ [ehdot ]

GROUP BY ensimmäinen sarake, toinen sarake..

JÄRJESTYKSESSÄ ensimmäinen sarake, toinen sarake.. ;

Esimerkki 1



Ymmärtääksemme ryhmän käsitteen funktioittain, käytämme tässä esimerkkiä. Matkustajataulukosta näet, että joidenkin ihmisten sukunimet ovat samat. Jokainen nimi, joka on samankaltainen kuin toinen, muodostaa ryhmän, ja heidän maksunsa lisätään kollektiivisesti jokaista samaa nimeä vastaan. Tätä selostetaan alla olevassa esimerkissä.





>> valitse lnimi, SUM (maksu) matkustajalta GROUP BY lname;

Matkustajan sukunimi valitaan sisäänrakennetulla SUM-funktiolla, joka ottaa sarakkeen 'maksu'. Ja lisää maksu niille henkilöille, joilla on sama nimi. Esimerkiksi 'Javed' ja 'saad' palkat lisätään. Sen sijaan 'Malik' ja 'Shams' mainitaan erikseen.



Samoin harkitse pöytää 'sairaala'. Haluamme ryhmitellä kaupungin iän mukaan. Tässä esimerkissä yksi kaupunki on olemassa useammin kuin kerran sarakkeessa. Jokainen kaupunki on ryhmitelty samalla kaupungin nimellä. Jokaisen kaupungin ryhmän iät lasketaan yhteen ja muodostavat yhden rivin.

Sairaala:

>> valitse kaupunki, SUM (ikä) sairaalasta GROUP BY city;

Esimerkki 2

Vaihtoehtoisesti, jos valitsemme taulukon matkustajan sukunimen id:llä, tuloksena on eri taulukko. Koska kun ryhmittelemme molemmat sarakkeet yhteen, se näyttää jokaisen matkustajan nimen, koska jokaisen matkustajan tunnus on erilainen, vaikka sillä olisi yhteinen sukunimi. Summa lasketaan erillisessä sarakkeessa, mutta jokaisen matkustajan maksu mainitaan hänen nimensä edessä, koska nimen ryhmittelyä ei tehdä tässä.

Tämä on esimerkki ryhmittelylausekkeesta, jossa on useita sarakkeita. Koska kun useita sarakkeita valitaan ryhmittelyyn, tuloksena oleva arvo muuttuu ryhmään verrattuna yhdellä taulukolla.

>> valitse id, lname, SUM (maksu) matkustajalta GROUP BY id, lname;

Tulosteesta huomaa yhden asian, että ensinnäkin näytetään kaikki harvinaiset nimet ja sitten ne, jotka ovat samat, mainitaan taulukossa.

Esimerkki 3

Tässä esimerkissä on liittymisehto ja ryhmälause. Kun käytetään sanaa 'liity', se tarkoittaa, että olemme käyttäneet tässä kahta taulukkoa. Toinen on 'tuote' ja toinen on 'tilaukset'.

Tuotteet:

Tilaukset:

Olemme käyttäneet ketjutusmenetelmää (käytetään yhdistämään kaksi merkkijonoa) yhdistämään 'ites' -taulukon kahden sarakkeen arvot ',' ja nimeämään sarakkeen kollektiivisesti nimellä 'description'. Se on valinnainen; voit ottaa ne erikseen. Tässä kyselyssä avainsana 'KÄYTTÖ' identifioi tietyn sarakkeen toisesta taulukosta. Nimiketaulukon osoite täsmäytetään 'tilaukset' -taulukon osoitesarakkeeseen. Tämä tehdään yhdistämällä kaksi pöytää. Kuten aiemmissa esimerkeissä, molemmat sarakkeet valitaan GROUP BY -lauseella.

>> valitse nimi || ‘,’ || luokka Kuvaus, osoite kohteista sisäinen liitos Tilaukset KÄYTTÖ (osoite) GROUP BY osoite, Kuvaus;

Voit huomata, että valitaan 5 riviä, joilla tuotteiden osoitteet vastaavat tilausten osoitetta. Ja sitten Kuvaus-sarake muodostetaan vastaamaan osoitesaraketta.

Samalla tavalla on toinen esimerkki ketjutuksesta ikätekijän kanssa kahdessa taulukossa. Toinen on 'matkustaja' ja toinen 'työntekijä'. Yhdistelmä on etu- ja sukunimen välissä. Molemmat nimet erotetaan kahden nimen välisellä välilyönnillä. Olemme ottaneet tänne osan työläispöydästä.

Työntekijä:

Kysely toimii niin, että ikäsarakkeessa näkyy kohta, jossa työntekijän fnimi täsmää matkustajan kanssa, matkustajan ikä.

>> valitse fnimi || ‘’ || matkustaja.lnimi koko_nimi, matkustaja.ikä matkustajalta SISÄINEN liittyä työntekijä KÄYTTÖÖN (fname) GROUP BY koko_nimi, matkustaja.ikä ORDER BY matkustaja.ikä;

Muodostetaan yksi rivi. Koko_nimi luodaan yhdistämällä kaksi saraketta välilyönnillä ja valitaan osoite, jossa matkustajan fnimi vastaa työntekijän fnimeä.

Esimerkki 4

Tämä esimerkki käsittelee count () -funktion käyttämistä 'tuotetaulukon' tunnisteiden laskemiseen. Tämä on jälleen ryhmittely taulukon id:n mukaan.

>> Valitse tunnus, COUNT (id) FROM kohteista GROUP BY id;

Id-sarakkeen rivit on jaettu ryhmiin. Jokainen ryhmä lasketaan sarakkeeseen, kuinka monta kertaa se esiintyy sarakkeessa. Tuloksena olevaan taulukkoon luodaan uusi sarake, jonka nimi on 'count', ja luvun arvot kirjoitetaan tähän kunkin ryhmän eteen.

pgAdmin

Nyt olemme käyttäneet joitain esimerkkejä PostgreSQL:n kojelaudan puolella. Nämä esimerkit ovat jossain määrin erilaisia, koska ne muodostavat välisummarivin alkuperäisestä sarakkeesta, kun jokin kohteista eroaa muista, joten arvo palautetaan NULL-arvona.

Harkitse ensimmäistä esimerkkiä; täällä olemme luoneet sarakkeen nimen 'ALL', joka on yhdistänyt kaksi saraketta. Osoite ja luokka. ALL-sarake laskee molempien sarakkeiden arvot yhdessä. Osoite-sarake on ryhmitelty nimellä 'lisää' ja luokkasarake on erikseen ryhmitelty 'kissaksi'. Molempien käytettyjen taulukoiden sarakkeiden nimet voidaan sovittaa toisiinsa. Joten kunkin taulukon jokaista saraketta käyttää tietty objekti.

Komennon ehto riippuu tunnuksesta ja tilausnumerosta. Jos nämä tunnus- ja tilausnumerot ovat samat, tiedot noudetaan. Vastaavasti nimelle on lisätty lisäehto.

>> SELECT o.osoite, luokka, count (*) AS “ALL”, GROUPING(o.address) AS “add” , GROUPING (category ) AS “cat” kohteista I, tilaukset o jossa i.tilausnro = o. order_id AND i.address= 'Lahore' GROUP BY CUBE (o.osoite, luokka) ORDER BY 1, 2;

Lahoren kaupungille valitaan yksi luokka. Mahdollisuuksia on 4. Joskus lelu on läsnä, mutta ei osoitetta. Ja päinvastoin. Mutta on olemassa aika, jolloin sekä luokka että osoite ovat läsnä.

Jos nyt muutamme nimen ehtoa taulukosta ja vaihdamme taulukkoa toisella. 'Tuotteet.osoite' korvataan nimellä 'tilausosoite', jolloin tulos on erilainen.

Johtopäätös

Lauseketta 'Postgresql group by' käytetään soveltamaan mitä tahansa aggregaattioperaattoria kollektiiviseen dataan. Tässä artikkelissa käytetään ryhmälausetta, jossa on laskentatoiminto, liitokset sekä useiden sarakkeiden valinta ja ryhmittely. Olen varma, että tämä opetusohjelma on paras tapa ymmärtää lukijoita.