Összesítő függvények és adatok összegzése
Ha úgy érzed, hogy elakadtál, és több segítségre van szükséged, keress bizalommal! Kedvező árú magánórák keretében szívesen segítek elsajátítani a programozás alapjait.
Magánóra ajánlatokAmikor nagyobb adatmennyiséggel dolgozunk, előfordul, hogy több rekord adatait összegezni szeretnénk - például szeretnénk meghatározni egy osztály átlagát, vagy kiszámítani egy csapat összpontszámát. Ha több rekord adatait szeretnénk valamilyen módon összegezni, arra összesítő függvényeket használunk.
Ezeket általában közvetlenül a SELECT kulcsszó után, a lekérendő mezők felsorolásánál szoktuk használni -- itt tudjuk megadni, hogy egy-egy mezőt milyen függvénnyel szeretnénk összesíteni.
A fontosabb MySQL összesítőfüggvények az alábbiak:
- MIN: az adatok minimumát adja meg, azaz a mezőben szereplő értékek közül a legkisebbet
- MAX: az adatok maximumát adja meg, azaz a mezőben szereplő értékek közül a legnagyobbat
- AVG: az értékek átlagát határozza meg
- SUM: az adatok összegét adja meg
- COUNT: az értékek számát adja meg (de a DISTINCT kulcsszóval együtt használható az egyedi értékek meghatározására is – lásd: lentebb)
Fontos, hogy az összesítő függvények (és minden más függvény a MySQL-ben) neve után minden esetben zárójelben helyezzük el annak paramétereit -- jelen esetben azt, hogy melyik mező adatait szeretnénk összesíteni. Ha tehát például a jegy mező felhasználásával szeretnénk a diákok jegyeinek átlagát megadni, azt így valósíthatjuk meg:
SELECT AVG(`jegy`) FROM `jegy`
Ez a lekérdezés mindössze egy darab értéket fog visszaadni, amiben a jegyek átlagát találjuk meg.
Ehhez hasonlóan, ha a diak táblában található diákok számára vagyunk kíváncsiak, ezt is könnyedén lekérdezhetjük a COUNT használatával:
SELECT COUNT(`id`) FROM `diak`
Érdemes megjegyezni, hogy megszámlálás esetén általában a rekordokat magukat szeretnénk megszámolni. Ezesetben nem feltétlen szükséges konkrét mezőt megadni – a COUNT(*) utasítással is meghatározhatjuk, ezzel a lekérdezésünk átláthatóbbá tehető. A fenti lekérdezéssel működés tekintetében megegyezik tehát az alábbi:
SELECT COUNT(*) FROM `diak`Alapesetben a COUNT az értékek számát határozza meg. Van azonban lehetőségünk arra is, hogy csak az egyedi értékeket számoljuk meg – azaz megszámoljuk, hogy hány különböző értéket tartalmaz egy mező, például hogy hány különböző iskolából neveztek egy tanulmányi versenyre. Ez esetben a DISTINCT kulcsszót is használnunk kell, a COUNT összesítőfüggvényen belül:
SELECT COUNT(DISTINCT `iskola`) FROM `nevezo`