logo

SQL GROUP BY

Az SQL GROUP BY záradék az azonos adatok egy vagy több oszlopon alapuló csoportokba rendezésére szolgál. Általában olyan összesítő függvényekkel használják, mint a COUNT() SUM() AVG() MAX() és MIN() az egyes adatcsoportok számításaihoz.

gyümölcsök_kép' title=

Példa: Először mi fogunk teremt egy demó SQL adatbázis és tábla, amelyen a GROUP BY parancsot fogjuk használni.

Alkalmazottak' loading='lazy' title=

Lekérdezés:



SELECT Department SUM(Salary) AS TotalSalary FROM Employees GROUP BY Department;

Kimenet:

iteráló térkép java
Csoportonkénti lekérdezés' loading='lazy' title=

Szintaxis:

SELECT column1 aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1 column2;
  • aggregate_function: aggregálásra használt függvény pl. SUM() AVG() COUNT().
  • táblázat_neve: annak a táblának a neve, amelyből az adatokat kiválasztjuk.
  • állapot: Opcionális feltétel a sorok szűrésére a csoportosítás előtt (a WHERE-vel együtt használva).
  • oszlop1 oszlop2: Oszlopok, amelyeken a csoportosítást alkalmazzák.

Példák a GROUP BY-re

Tegyük fel, hogy van egy diák asztalunk. Néhány mintaadatot beszúrunk ebbe a táblázatba, majd a GROUP BY használatával műveleteket hajtunk végre, hogy megértsük, hogyan csoportosítja a sorokat egy oszlop alapján, és hogyan összesíti az adatokat.

grp' loading='lazy' title=

1. példa: Csoportosítás egyetlen oszlop szerint

Ha egyetlen oszlop szerint csoportosítunk, az abban az oszlopban lévő azonos értékű sorokat egyesítjük. Például a tantárgyak szerinti csoportosítás megmutatja, hogy hány hallgató van beiratkozva az egyes tantárgyakból.

Lekérdezés:

SELECT subject COUNT(*) AS Student_Count FROM Student GROUP BY subject;

Kimenet:

buborék rendezés java
grp-1' loading='lazy' title=

Magyarázat: Minden tantárgy kétszer szerepel a táblázatban, így az angol matematika és természettudományok száma 2.

2. példa: Csoportosítás több oszlop szerint

A GROUP BY használata több oszloppal olyan sorokat csoportosít, amelyek ugyanazokat az értékeket osztják meg ezekben az oszlopokban. Például a tantárgy és évszám szerinti csoportosítás során a sorokat ugyanazzal a tárgy-évpárral kombináljuk, és meg tudjuk számolni, hogy hány tanuló esik az egyes csoportokba.

Lekérdezés:

SELECT subject year COUNT(*) FROM Student GROUP BY subject year;

Kimenet:

diákok-grp' loading='lazy' title=

Magyarázat: Az azonos tárgyú és évfolyamos tanulókat csoportosítják. Mivel minden tantárgy–év pár kétszer fordul elő, a szám minden csoportnál 2.

shweta tiwari

HAVING záradék a GROUP BY záradékban

A HAVING záradékot a csoportosítás utáni eredmények szűrésére használják, különösen, ha olyan összesítő függvényekkel dolgozunk, mint a SUM() COUNT() vagy AVG(). A WHERE-től eltérően feltételeket alkalmaz a csoportosított adatokra.

emp' loading='lazy' title=

1. példa: Szűrés teljes fizetés alapján

Ebben a lekérdezésben név szerint csoportosítjuk az alkalmazottakat, és csak azokat jelenítjük meg, akiknek a teljes fizetése meghaladja az 50 000-et.

SELECT NAME SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>50000; 

Kimenet

életkor-1' loading='lazy' title=

Magyarázat : Csak azok a munkavállalók jelennek meg az eredményben, akiknek a teljes fizetése meghaladja az 50 000 főt.

konvertálja a strint int-re

2. példa: Szűrés átlagos fizetés alapján

Ebben a lekérdezésben az alkalmazottakat életkor szerint csoportosítjuk, és csak azokat a korcsoportokat jelenítjük meg, ahol az átlagkereset 60 000 felett van.

SELECT age AVG(sal) AS Average_Salary FROM emp GROUP BY age HAVING AVG(sal) > 60000;

Kimenet:

kimenet-1' loading='lazy' title=

Magyarázat: Ez a lekérdezés életkor szerint csoportosítja az alkalmazottakat, és minden életkorhoz kiszámítja az átlagos fizetést. Csak azok a korcsoportok jelennek meg, ahol az átlagkereset meghaladja a 60 000 főt.

Kvíz létrehozása