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
vezeteknev | keresztnev | lakhely | szuletesi_ev |
---|---|---|---|
Horváth | Tamás | Budapest | 1989 |
Lakatos | Dezső | Debrecen | 1961 |
Losonczi | Léna | Nyíregyháza | 2005 |
Balogh | Beatrix | Miskolc | 1985 |
Kovács | István | Budapest | 1957 |
Lakatos | Boldizsár | Debrecen | 2009 |
SQL lekérdezés
SELECT lakhely, COUNT(lakhely)
FROM sql_table
GROUP BY lakhely;
Code language: SQL (Structured Query Language) (sql)
Eredmény
lakhely | COUNT(lakhely) |
---|---|
Budapest | 2 |
Debrecen | 2 |
Miskolc | 1 |
Nyíregyháza | 1 |
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.