Az SQL GROUP BY záradék használata (Adatbázis-lekérdezések utasításai példákkal)

Ebben az SQL leckében bemutatjuk azt, hogy hogyan lehet sorokat csoportosítani a GROUP BY záradék segítségével.

SQL alapok kezdőknek, SQL ismeretek kurzus borítókép

Az SQL GROUP BY záradék használata (Adatbázis-lekérdezések utasításai példákkal)

Ebben az SQL leckében bemutatjuk azt, hogy hogyan lehet sorokat csoportosítani a GROUP BY záradék segítségével.

Az SQL GROUP BY funkciója

Az SQL GROUP BY utasítását arra használják, hogy összegezzék vagy csoportosítsák az azonos értékű oszlopok rekordjait. Általában különböző aggregáló függvényekkel együtt használják, ám erről a következő leckében esik bővebben szó.

Az SQL GROUP BY szintaktikája

SELECT oszlop(ok)
FROM tábla
WHERE feltétel
GROUP BY oszlop(ok)
ORDER BY oszlop(ok);
Code language: SQL (Structured Query Language) (sql)

A GROUP BY kulcsszó után csak szimplán meg kell adnunk az(oka)t az oszlop(okat), amely(ek)et csoportosítani szeretnénk.

Fontos, hogy a GROUP BY a WHERE után és az ORDER BY előtt helyezkedik el. Természetesen nem muszáj használnunk ezek a záradékokat, de ha használjuk, akkor ezek között kell elhelyezkedni a GROUP BY utasításnak.

SQL GROUP BY példa

sql_table tábla

vezeteknevkeresztnevlakhelyszuletesi_ev
HorváthTamásBudapest1989
LakatosDezsőDebrecen1961
LosoncziLénaNyíregyháza2005
BaloghBeatrixMiskolc1985
KovácsIstvánBudapest1957
LakatosBoldizsárDebrecen2009

SQL lekérdezés

SELECT lakhely, COUNT(lakhely)
FROM sql_table
GROUP BY lakhely;
Code language: SQL (Structured Query Language) (sql)

Eredmény

lakhelyCOUNT(lakhely)
Budapest2
Debrecen2
Miskolc1
Nyíregyháza1

A lenti példában a lakhelyek alapján csoportosítjuk a rekordokat, de ez önmagában csak egy olyan eredményhalmazt adna, amelyben csak egyszer szerepelnének az ismétlődő lakhelyek. Ha hozzárakunk egy COUNT() függvényt, akkor megtudjuk számolni, hogy az egyes lakhelyekből mennyi van.

Ha pedig csak COUNT(lakhely)-et használtunk volna, úgy, hogy a végén nem szerepel a GROUP BY, akkor szimplán megszámolta volna az összes rekordot, amely jelen esetben 6.

Ha hasznos volt számodra, akkor kérlek oszd meg másokkal is, hogy ezzel támogass minket!