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:

 

  1. AVG (átlag): Egy oszlop értékeinek átlagát számítja ki.
    • Példa: SELECT AVG(fizetes) AS 'Átlagfizetés' FROM dolgozo;
  2. COUNT (darabszám): Az adott oszlop értékeinek számát adja vissza.
    • Példa: SELECT COUNT(*) AS 'Dolgozók száma' FROM dolgozo;
  3. MIN (legkisebb): Az oszlop legkisebb értékét adja vissza.
    • Példa: SELECT MIN(fizetes) AS 'Legalacsonyabb fizetés' FROM dolgozo;
  4. MAX (legnagyobb): Az oszlop legnagyobb értékét adja vissza.
    • Példa: SELECT MAX(fizetes) AS 'Legmagasabb fizetés' FROM dolgozo;
  5. SUM (összeg): Az oszlop értékeinek összegét számítja ki.
    • Példa: SELECT SUM(fizetes) AS 'Összes fizetés' FROM dolgozo;

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ény 2025.

  • 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ény 1985.

  • 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;