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 |
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 :)
GO TO FULL VERSION