adatbázis
Aggregáló függvények – SQL
Adatbázis – SQL
Aggregáló függvények
Az aggregáló szó azt jelenti, hogy valami összegez, csoportosít vagy összefoglal adatokat. Az SQL aggregáló függvények olyan speciális függvények, amelyek egy adathalmaz értékeit egyetlen eredménybe sűrítik.
Például:
- AVG: Kiszámolja az adathalmaz átlagát.
- SUM: Összeadja az adathalmaz elemeit.
- COUNT: Megszámolja az elemek számát.
- MIN: Kiválasztja a legkisebb értéket.
- MAX: Kiválasztja a legnagyobb értéket.
Az SQL aggregáló függvények segítségével a táblázatokból adatokat lehet összesíteni és különböző számításokat végezni. Ezeket gyakran használjuk statisztikai és riportkészítési feladatokhoz. Az alábbiakban részletezve bemutatom a legfontosabb függvényeket és azok használatát.
Aggregáló függvények:
- AVG (átlag): Egy oszlop értékeinek átlagát számítja ki.
- Példa:
SELECT AVG(fizetes) AS 'Átlagfizetés' FROM dolgozo;
- Példa:
- COUNT (darabszám): Az adott oszlop értékeinek számát adja vissza.
- Példa:
SELECT COUNT(*) AS 'Dolgozók száma' FROM dolgozo;
- Példa:
- MIN (legkisebb): Az oszlop legkisebb értékét adja vissza.
- Példa:
SELECT MIN(fizetes) AS 'Legalacsonyabb fizetés' FROM dolgozo;
- Példa:
- MAX (legnagyobb): Az oszlop legnagyobb értékét adja vissza.
- Példa:
SELECT MAX(fizetes) AS 'Legmagasabb fizetés' FROM dolgozo;
- Példa:
- SUM (összeg): Az oszlop értékeinek összegét számítja ki.
- Példa:
SELECT SUM(fizetes) AS 'Összes fizetés' FROM dolgozo;
- Példa:
Feladatok
1. Mikor született a legfiatalabb dolgozó?
SELECT MAX(szuldat) AS ‘Legfiatalabb születési dátum’ FROM dolgozo;
2. Hány női dolgozó van?
SELECT COUNT(*) AS ‘Nők száma’ FROM dolgozo WHERE nem = ‘N’;
3: Mekkora a dolgozók átlagos életkora?
SELECT AVG(YEAR(CURRENT_DATE()) – YEAR(szuldat)) AS ‘Átlag életkor’ FROM dolgozo;
Részletes bontás
-
YEAR(CURRENT_DATE())
: Ez a rész kinyeri az aktuális év számát. Például, ha ma 2025. január 5-e van, akkor az eredmény2025
. -
YEAR(szuldat)
: Ez a függvény az adott dolgozó születési dátumából (pl.1985-07-20
) csak az évet veszi ki. Ha az alkalmazott 1985-ben született, akkor az eredmény1985
. -
YEAR(CURRENT_DATE()) - YEAR(szuldat)
: Ez a különbség megadja a dolgozó életkorát az aktuális év alapján. Például:2025 (aktuális év)
–1985 (születési év)
= 40 év.
-
AVG(...)
: Az AVG függvény kiszámolja az összes dolgozó életkorának átlagát. Tehát összeadja az összes életkort, majd elosztja a dolgozók számával. -
AS 'Átlag életkor'
: Ez csak egy alias, amely nevet ad az eredménynek, hogy az oszlop neve az eredménytáblában „Átlag életkor” legyen.
4. Listázd ki a legmagasabb fizetést
SELECT MAX(fizetes) AS ‘legmagasabb fizetes’ FROM dolgozo
5. Számold meg, hány alkalmazott van a cégnél
SELECT COUNT(*) AS ‘dolgozok_szama’ FROM dolgozo
6. Add meg a dolgozok összes fizetését
SELECT SUM(fizetes) AS ‘Összes fizetés’ FROM dolgozo;
7. Listázd ki a legidősebb dolgozó születési dátumát
SELECT MIN(szuldat) AS ‘Legidősebb születési dátum’ FROM dolgozo;
8. Számold meg, hány dolgozó van, akinek a fizetése 400000 vagy annál nagyobb
SELECT COUNT(*) AS ‘dolgozok száma’ FROM dolgozo WHERE fizetes >= 400000;