Postgresql skupina od

Postgresql Skupina Od



Postgresql group by clause je funkce, která se používá ke sjednocení/kombinaci těch řádků v tabulce, které mají stejná data. Tato klauzule se používá hlavně k odstranění duplicitních dat a k zachování souběžnosti. Kdykoli chceme vypočítat součet nebo jakýkoli jiný agregát jako AVG atd., vždy se použije tato skupina po klauzuli, protože v PostgreSQL se používá mnoho klauzulí. Ale mezi každou klauzulí existuje hierarchie.

OD > ODKUD > „SKUPIT PODLE“ > S > VYBRAT > ODLIŠIT > OBJEDNAT PODLE > LIMIT

Fungování PostgreSQL spočívá v klauzuli „kde“ a „Having“.







Syntax



SELECT sloupec

Z dumytable

KDE [podmínky]

GROUP BY první sloupec, druhý sloupec..

SEŘADIT PODLE prvního sloupce, druhého sloupce.. ;

Příklad 1



Abychom pochopili koncept skupiny podle funkce, použijeme zde příklad. V tabulce cestujících vidíte, že příjmení jsou u některých lidí stejná. Každé jméno, které je podobné jinému, tvoří skupinu a jejich platba se přičte společně ke každému stejnému jménu. To je vysvětleno v níže uvedeném příkladu.





>> vyberte jméno, SUM (platba) ze skupiny cestujících GROUP BY lname;

Příjmení cestujícího se vybírá pomocí vestavěné funkce „SUM“, která přebírá sloupec „platba“. A přidejte platbu za lidi se stejným jménem. Přidá se například plat „Javed“ a „saad“. Zatímco u „Malik“ a „Shams“ je uveden individuálně.



Podobně zvažte stolní „nemocnici“. Chceme seskupit město podle věku. V tomto příkladu jedno město existuje ve sloupci více než jednou. Každé město je seskupeno se stejným názvem města. Věk každé skupiny města se sčítá a tvoří jeden řádek.

NEMOCNICE:

>> vyberte město, SUM (věk) z nemocnice GROUP BY město;

Příklad 2

Případně, pokud vybereme příjmení s id z tabulky cestující, výsledkem bude jiná tabulka. Protože když seskupíme oba sloupce dohromady, zobrazí se jméno každého cestujícího, protože ID každého cestujícího, i když má společné příjmení, je jiné. Částka je vypočítána v samostatném sloupci, ale platba každého cestujícího je uvedena před jeho jménem, ​​protože zde se seskupování jmen neprovádí.

Toto je příklad seskupení podle klauzule s více sloupci. Protože když je pro seskupení vybráno více sloupců, výsledná hodnota se změní ve srovnání se skupinou pomocí jediné tabulky.

>> vyberte id, lname, SUM (platba) z cestujícího GROUP BY id, lname;

Z výstupu si všimnete jedné věci, že nejprve se zobrazí všechna ta lname, která jsou neobvyklá, a poté jsou v tabulce uvedena ta, která jsou stejná.

Příklad 3

Tento příklad má podmínku spojení a skupinu podle klauzule. Protože se používá „připojit“, znamená to, že jsme zde použili dvě tabulky. Jedna je „položka“ a druhá „objednávka“.

Položky:

objednávky:

Použili jsme metodu zřetězení (používá se ke spojení dvou řetězců) ke spojení hodnot dvou sloupců tabulky „items“ pomocí „,“ a souhrnně pojmenovali sloupec jako „popis“. Je volitelné; můžete si je vzít samostatně. V tomto dotazu klíčové slovo „USING“ identifikuje konkrétní sloupec z druhé tabulky. Adresa z tabulky položek se shoduje se sloupcem adresy tabulky „objednávky“. To se provádí spojením dvou tabulek. Stejně jako v předchozích příkladech budou oba sloupce vybrány klauzulí GROUP BY.

>> vyberte jméno || ‘,‘ || kategorie jako Popis, adresa z položek vnitřní spojení Objednávky POMOCÍ (adresa) GROUP BY adresa, Popis;

Můžete pozorovat, že bude vybráno 5 řádků s adresou položek shodných s adresou Objednávek. A poté bude sloupec Popis vytvořen v souladu se sloupcem adresy.

Podobně je na dvou tabulkách další příklad zřetězení s faktorem věku. Jeden je „cestující“ a druhý „pracovník“. Zřetězení je mezi jménem a příjmením. Oba tyto názvy jsou odděleny mezerou mezi dvěma názvy. Vzali jsme zde část pracovního stolu.

Pracovník:

Dotaz bude fungovat tak, že ve sloupci věk se zobrazí bod, kde se jméno pracovníka shoduje s cestujícím, věk od cestujícího.

>> vybrat jméno || ‘‘ || jméno cestujícího jako celé_jméno, věk. cestujícího od cestujícího VNITŘNÍ připojit pracovníka POUŽITÍM (jméno) GROUP BY celé_jméno, věk. cestujícího ORDER BY věk. cestujícího;

Vytvoří se jedna řada. Celé jméno je vytvořeno spojením dvou sloupců s mezerou a adresa je vybrána tam, kde se příjmení pasažéra shoduje s příjmením pracovníka.

Příklad 4

Tento příklad se zabývá použitím funkce count () k počítání id tabulky „items“. Toto je opět seskupení podle id tabulky.

>> Vyberte id, COUNT (id) FROM položek GROUP BY id;

Řádky ve sloupci id jsou rozděleny do skupin. Každá skupina se započítá do sloupce, kolikrát se ve sloupci objeví. Ve výsledné tabulce se vytvoří nový sloupec s názvem „count“ a zde se před každou skupinu zapíší hodnoty počtu.

Váš pgAdmin

Nyní jsme použili některé příklady na straně řídicího panelu PostgreSQL. Tyto příklady se v určitém směru liší, protože tvoří řádek mezisoučtu z původního sloupce, když se některá z položek liší od ostatních, takže hodnota je vrácena jako NULL.

Zvažte první příklad; zde jsme vytvořili název sloupce „ALL“, který kombinuje dva sloupce. Adresa a kategorie. Sloupec „ALL“ počítá hodnoty v obou sloupcích společně. Sloupec adresy je seskupen jako „přidat“ a sloupec kategorie je samostatně seskupen jako „kočka“. Protože názvy sloupců obou použitých tabulek mohou být vzájemně sladěny. Ke každému sloupci příslušné tabulky tedy přistupuje konkrétní objekt.

Podmínka použitá na příkaz závisí na id a čísle objednávky. Pokud jsou obě tato ID a čísla objednávky stejná, data se načtou. Podobně je k názvu přidána další podmínka.

>> SELECT o.address, category, count (*) AS “ALL”, GROUPING(o.address) AS “add” , GROUPING (kategorie ) AS “cat” Z položek I, objednávek o kde i.obj.č = o. order_id AND i.address= 'Lahore' GROUP BY CUBE (o.address, category) ORDER BY 1, 2;

Pro město Lahore je vybrána jedna kategorie. Jsou 4 možnosti. Někdy je hračka přítomna, ale ne adresa. A naopak. Existuje však doba, kdy je přítomna jak kategorie, tak adresa.

Nyní, pokud změníme podmínku názvu z tabulky a přepneme tabulku za jinou. „Adresa.položek“ je nahrazena „Adresa objednávky“, pak je výsledek jiný.

Závěr

Klauzule „Postgresql group by“ se používá k použití jakéhokoli souhrnného operátora na souhrnná data. Tento článek používá skupinu po klauzuli s funkcí počítání, spojení a výběr a seskupení více sloupců. Jsem si jistý, že tento tutoriál bude pro čtenáře tím nejlepším prostředkem k porozumění.