Postgresql skupina od

Postgresql Skupina Od



Postgresql group by clause je funkcia, ktorá sa používa na zjednotenie/kombinovanie tých riadkov v tabuľke, ktoré majú rovnaké údaje. Táto klauzula sa používa hlavne na odstránenie duplicitných údajov a na zachovanie súbežnosti. Kedykoľvek chceme vypočítať súčet alebo akýkoľvek iný agregát, ako je AVG atď., táto skupina po klauzule sa vždy používa, pretože v PostgreSQL sa používa veľa klauzúl. Ale medzi každou klauzulou existuje hierarchia.

OD > ODKIAĽ > „ZOSKUPOVAŤ PODĽA“ > S > VYBRAŤ > ODDIEL. > OBJEDNAŤ PODĽA > LIMIT

Fungovanie PostgreSQL spočíva v klauzule „kde“ a „Having“.







Syntax



SELECT stĺpec

Z dumytable

KDE [podmienky]

GROUP BY prvý stĺpec, druhý stĺpec..

ORDER PODĽA prvého stĺpca, druhého stĺpca.. ;

Príklad 1



Aby sme pochopili koncept skupiny podľa funkcie, použijeme tu príklad. V tabuľke cestujúcich vidíte, že priezviská sú u niektorých ľudí rovnaké. Každé meno, ktoré je podobné inému, tvorí skupinu a ich platba sa pripočítava ku každému rovnakému menu. Toto je vysvetlené v nižšie uvedenom príklade.





>> vyberte meno, SUM (platba) zo skupiny cestujúcich GROUP BY lname;

Priezvisko cestujúceho sa vyberá pomocou vstavanej funkcie „SUM“, ktorá preberá stĺpec „platba“. A pridajte platbu za ľudí s rovnakým menom. Napríklad sa pridá plat „Javed“ a „saad“. Zatiaľ čo pre „Malik“ a „Shams“ je to uvedené individuálne.



Podobne zvážte stôl „nemocnica“. Chceme zoskupiť mesto podľa veku. V tomto príklade jedno mesto existuje v stĺpci viac ako raz. Každé mesto je zoskupené s rovnakým názvom mesta. Vek každej skupiny mesta sa sčítava a tvorí jeden riadok.

NEMOCNICA:

>> vyberte mesto, SUM (vek) z nemocnice GROUP BY mesta;

Príklad 2

Prípadne, ak vyberieme priezvisko s id z tabuľky pasažier, výsledkom bude iná tabuľka. Pretože keď oba stĺpce zoskupíme, zobrazí sa meno každého cestujúceho, pretože ID každého cestujúceho, aj keď má spoločné priezvisko, je iné. Suma je vypočítaná v samostatnom stĺpci, ale platba každého cestujúceho je uvedená pred jeho menom, pretože tu nie je uskutočnené zoskupovanie mien.

Toto je príklad skupiny podľa klauzuly s viacerými stĺpcami. Pretože keď sa na zoskupenie vyberie viacero stĺpcov, výsledná hodnota sa zmení v porovnaní so skupinou pomocou jednej tabuľky.

>> vyberte id, lname, SUM (platba) od cestujúceho GROUP BY id, lname;

Z výstupu si všimnete jednu vec, že ​​najprv sa zobrazia všetky mená, ktoré nie sú bežné, a potom sa v tabuľke uvádzajú tie, ktoré sú rovnaké.

Príklad 3

Tento príklad má podmienku spojenia a skupinu podľa klauzuly. Keďže sa používa slovo „spojiť“, znamená to, že sme tu použili dve tabuľky. Jedna je „položka“ a druhá je „objednávka“.

Položky:

objednávky:

Použili sme metódu zreťazenia (používanú na spojenie dvoch reťazcov), aby sme spojili hodnoty dvoch stĺpcov tabuľky „items“ s „“ a pomenovali stĺpec spoločne ako „popis“. Je to voliteľné; môžete si ich vziať samostatne. V tomto dotaze kľúčové slovo „POUŽÍVANIE“ identifikuje konkrétny stĺpec z inej tabuľky. Adresa z tabuľky položiek sa zhoduje so stĺpcom adresy tabuľky „objednávky“. To sa vykonáva spojením dvoch tabuliek. Podobne ako v predchádzajúcich príkladoch budú oba stĺpce vybrané klauzulou GROUP BY.

>> vyberte meno || „,“ || kategória ako Popis, adresa z položiek vnútorné spojenie Objednávky POMOCOU (adresa) GROUP BY adresa, Popis;

Môžete si všimnúť, že sa vyberie 5 riadkov s adresou položiek zhodných s adresou objednávok. Potom sa stĺpec Popis vytvorí v súlade so stĺpcom adresy.

Podobne je tu ďalší príklad zreťazenia s faktorom veku v dvoch tabuľkách. Jeden je „cestujúci“ a druhý „pracovník“. Reťazenie je medzi menom a priezviskom. Oba tieto názvy sú oddelené medzerou medzi dvoma menami. Zobrali sme tu časť pracovného stola.

pracovník:

Dotaz bude fungovať tak, že v stĺpci veku sa zobrazí bod, v ktorom sa meno pracovníka zhoduje s cestujúcim, vek od cestujúceho.

>> vyberte meno || ‘ ‘ || meno cestujúceho ako celé meno, vek. cestujúceho od cestujúceho VNÚTORNÉ pripojenie pracovníka POMOCOU (fname) GROUP BY celé_meno, vek. pasažiera ORDER BY. vek cestujúceho;

Vytvorí sa jeden rad. Celé meno sa vytvorí spojením dvoch stĺpcov s medzerou a vyberie sa adresa, kde sa meno cestujúceho zhoduje s menom pracovníka.

Príklad 4

Tento príklad sa zaoberá použitím funkcie count () na počítanie ID tabuľky „items“. Toto je opäť zoskupenie podľa id tabuľky.

>> Vybrať id, COUNT (id) FROM položky GROUP BY id;

Riadky v stĺpci id sú rozdelené do skupín. Každá skupina sa počíta v stĺpci, koľkokrát sa v stĺpci objaví. Vo výslednej tabuľke sa vytvorí nový stĺpec s názvom „count“ a pred každú skupinu sa tu zapíšu hodnoty počtu.

Váš pgAdmin

Teraz sme použili niekoľko príkladov na strane dashboardu PostgreSQL. Tieto príklady sa do určitej miery líšia, pretože tvoria riadok medzisúčtu z pôvodného stĺpca, keď sa ktorákoľvek z položiek líši od ostatných, takže hodnota sa vráti ako NULL.

Zvážte prvý príklad; tu sme vytvorili názov stĺpca „ALL“, ktorý kombinuje dva stĺpce. Adresa a kategória. Stĺpec „ALL“ spočítava hodnoty v oboch stĺpcoch spoločne. Stĺpec adresy je zoskupený ako „pridať“ a stĺpec kategórie je samostatne zoskupený ako „mačka“. Keďže názvy stĺpcov oboch použitých tabuliek sa môžu navzájom zhodovať. Takže ku každému stĺpcu príslušnej tabuľky pristupuje špecifický objekt.

Podmienka aplikovaná na príkaz závisí od id a čísla objednávky. Ak sú tieto identifikačné čísla a čísla objednávky rovnaké, údaje sa načítajú. Podobne je k názvu pridaná aj ďalšia podmienka.

>> SELECT o.address, category, count (*) AS “ALL”, GROUPING(o.address) AS “add” , GROUPING (category ) AS “cat” Z položiek I, objednávok o kde i.číslo_objednávky = o. order_id AND i.address= 'Lahore' SKUPINA PODĽA KOCKY (o.adresa, kategória) ORDER BY 1, 2;

Pre mesto Lahore je vybraná jedna kategória. Sú 4 možnosti. Niekedy je hračka prítomná, ale nie adresa. A naopak. Existuje však čas, keď je prítomná kategória aj adresa.

Teraz, ak zmeníme podmienku názvu z tabuľky a vymeníme tabuľku za inú. „Adresa položky“ je nahradená „adresa objednávky“, potom je výsledok iný.

Záver

Klauzula „Postgresql group by“ sa používa na použitie akéhokoľvek agregovaného operátora na kolektívne údaje. Tento článok používa skupinu po klauzule s funkciou počítania, spojeniami a výberom a zoskupením viacerých stĺpcov. Som si istý, že tento návod bude najlepším prostriedkom na pochopenie pre čitateľov.