6.1 Az összesített függvények listája

Ha az SQL-ben sorcsoportosítást használ az operátorral , akkor az utasításban olyan függvényeket GROUP BYhasználhat , amelyek a csoportosított adatokon működnek. SELECTAz ilyen függvényeket aggregált függvényeknek is nevezik.

Íme a legnépszerűbbek listája:

# Funkció Leírás
1 SZÁMOL() Egy csoportban lévő értékek számát adja vissza
2 ÖSSZEG() Egy csoport értékeinek összegét adja vissza
3 MAX() Egy csoport maximális értékét adja vissza
4 MIN() Egy csoport minimális értékét adja vissza
5 AVG() Egy csoport átlagát adja vissza
6 BIT_AND() Az összes csoportérték felett bitenkénti ÉS-t hajt végre
7 BIT_OR() Bitenkénti VAGY műveletet hajt végre az összes csoportértéken
8 BIT_XOR() Bitenkénti XOR-t hajt végre az összes csoportértéken
9 GROUP_CONCAT() Összefűzi az összes csoportértéket egy karakterláncba
Ez nem egy teljes lista az összesített függvényekről, de a többi nagyon specifikus, és nem hiszem, hogy a következő 5 évben használni fogod őket.Ha mégis szükséged van rájuk, mindig elolvashatod a DBMS-ed hivatalos dokumentációját.

Most nézzünk néhány példát az összesített függvényeinkre.

6.2 Az alkalmazottak fizetésének elemzése

Számítsunk ki néhány statisztikai adatot alkalmazottainkról az alkalmazottak táblázatából .

Első kérdés: hány alkalmazottunk van?

Ha meg akarjuk tudni a táblázat összes rekordjának számát, akkor ehhez használhatjuk az összesítő függvényt COUNT. A kérés így fog kinézni:

SELECT COUNT(*) FROM employee

És a MySQL válaszként a 6-os számot adja vissza. Az osztályon 6 alkalmazottunk van, köztük egy macska. Rendben.

Második kérdés: mennyit fizetünk havonta minden alkalmazottnak?

A kérdés megválaszolásához össze kell összegeznünk az összes alkalmazott fizetését. Ehhez az összesítő függvényt használjukSUM()

A kérés így fog kinézni:

SELECT SUM(salary) FROM employee

Vegye figyelembe, hogy ezúttal meg kell adnunk, hogy melyik oszlop értékeit összegezzük. Megadtunk egy fizetés oszlopot . Nem összegezhetjük az összes mezőt egy táblázatban.

A MySQL pedig a 461000-es számot adja vissza válaszként.. Az osztályon 6 fő dolgozik, a fizetés 461 ezer. Túl sok.

És végül a harmadik kérdés: mennyi a maximális és minimális fizetésünk az osztályon? Nos, számoljuk ki az átlagfizetést. Ehhez szükségünk van a MIN, MAXés a függvényekre AVG.

A lekérdezés ezúttal egy kicsit összetettebb lesz, és így fog kinézni:

SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee

A lekérdezés eredménye a következő lesz:

MIN(fizetés) AVG (fizetés) MAX (fizetés)
1000 76833.3333 200 000

Osztályunkon a minimálbér 1000 dollár – nagyon jó. A maximális fizetés 200 ezer, de ez az igazgató.

De az átlagfizetés túl magas, valahogy optimalizálni kell a költségeket. Béreljünk még egy macskát és ennyi :)