Az összesített funkciók lényege
- Számítások végrehajtása több soron
- A táblázat egyetlen oszlopából
- És egyetlen értéket ad vissza.
Az ISO szabvány öt (5) összesített funkciót határoz meg, nevezetesen;
1) COUNT
3) ÁTL
4) MIN
5) MAX
Miért használjunk összesített függvényeket?
Üzleti szempontból a különböző szervezeti szinteknek eltérő az információigénye. A felső szintű vezetőket általában az egész számok ismerete érdekli, és nem szükségesek az egyes részletek.
> Az összesített függvények lehetővé teszik számunkra az összesített adatok egyszerű előállítását az adatbázisunkból.
Például a myflix adatbázisunkból a kezeléshez szükség lehet a következő jelentésekre
- Legkevesebb bérelt filmek.
- A legtöbb bérelt film.
- Átlagos szám, amelyet egy film kölcsönöz egy hónap alatt.
Könnyedén elkészítjük a fenti jelentéseket összesített függvények segítségével.
Nézzük meg részletesen az összesített függvényeket.
COUNT funkció
A COUNT függvény a megadott mezőben megadott értékek teljes számát adja vissza. Numerikus és nem numerikus adattípusokon egyaránt működik. Az összesített függvény alapértelmezés szerint kizárja a null értékeket, mielőtt az adatokkal foglalkozik.
A COUNT (*) a COUNT függvény speciális megvalósítása, amely visszaadja a megadott táblázat összes sorának számát. A COUNT (*) figyelembe veszi a nullákat és a másolatokat is.
Az alábbi táblázat a movierentals táblázat adatait mutatja
Referenciaszám | a tranzakció időpontja | visszatérítési dátum | Tagsági szám | film_azonosító | film_ visszatért |
---|---|---|---|---|---|
11. | 2012.06.20 | NULLA | 1 | 1 | 0 |
12. | 2012.06.22 | 2012.06.25 | 1 | 2 | 0 |
13. | 2012.06.22 | 2012.06.25 | 3 | 2 | 0 |
14 | 2012.06.21 | 2012.06.24 | 2 | 2 | 0 |
15 | 2012.06.23 | NULLA | 3 | 3 | 0 |
Tegyük fel, hogy meg akarjuk szerezni, hogy hányszor adták ki a 2 azonosítójú filmet
SELECT COUNT(`movie_id`) FROM `movierentals` WHERE `movie_id` = 2;
A fenti lekérdezés végrehajtása a MySQL munkapadban a myflixdb ellen a következő eredményeket adja.
COUNT('movie_id') |
---|
3 |
DISTINCT Kulcsszó
A DISTINCT kulcsszó, amely lehetővé teszi számunkra, hogy kihagyjuk a duplikátumokat az eredményeinkből. Ezt úgy érhetjük el, hogy hasonló értékeket csoportosítunk.
A Distinct fogalmának értékelése érdekében egyszerű lekérdezést hajthat végre
SELECT `movie_id` FROM `movierentals`;
movie_id |
---|
1 |
2 |
2 |
2 |
3 |
Most hajtsuk végre ugyanazt a lekérdezést a külön kulcsszóval -
SELECT DISTINCT `movie_id` FROM `movierentals`;
Amint az alább látható, a különálló elhagyja az ismétlődő rekordokat az eredményekből.
movie_id |
---|
1 |
2 |
3 |
MIN funkció
A MIN funkció a megadott táblázatmező legkisebb értékét adja vissza .
Példaként tegyük fel, hogy szeretnénk tudni, hogy mely évben jelent meg könyvtárunk legrégebbi filmje, használhatjuk a MySQL MIN funkcióját a kívánt információk megszerzéséhez.
A következő lekérdezés segít abban, hogy ezt elérjük
SELECT MIN(`year_released`) FROM `movies`;
A fenti lekérdezés végrehajtása a MySQL munkapadban a myflixdb ellen a következő eredményeket adja.
MIN('year_released') |
---|
2005 |
MAX funkció
Ahogy a neve is sugallja, a MAX függvény ellentétes a MIN funkcióval. A megadott táblázatmező legnagyobb értékét adja vissza .
Tegyük fel, hogy szeretnénk elérni azt az évet, amikor megjelent az adatbázisunk legújabb filmje. Ennek eléréséhez könnyen használhatjuk a MAX funkciót.
A következő példa a legutóbb megjelent filmévet adja vissza.
SELECT MAX(`year_released`) FROM `movies`;
A fenti lekérdezés végrehajtása a MySQL munkaasztalon a myflixdb használatával a következő eredményeket adja.
MAX('year_released') |
---|
2012 |
SUM funkció
Tegyük fel, hogy olyan jelentést akarunk, amely az eddig teljesített kifizetések teljes összegét tartalmazza. Használhatjuk a MySQL SUM függvényt, amely a megadott oszlop összes értékének összegét adja vissza . A SUM csak numerikus mezőkön működik . A null értékeket a visszatérített eredmény kizárja.
Az alábbi táblázat a fizetési táblázat adatait mutatja
fizetés_azonosító | Tagsági szám | fizetés nap | leírás | kifizetett összeg | külső_ hivatkozás _szám |
---|---|---|---|---|---|
1 | 1 | 2012-07-23 | Filmkölcsön fizetés | 2500 | 11. |
2 | 1 | 2012-07-25 | Filmkölcsön fizetés | 2000 | 12. |
3 | 3 | 2012-07-30 | Filmkölcsön fizetés | 6000 | NULLA |
Az alább látható lekérdezés összegyűjti az összes befizetést, és összegzi őket, hogy egyetlen eredményt adjanak vissza.
SELECT SUM(`amount_paid`) FROM `payments`;
A fenti lekérdezés végrehajtása a MySQL munkapadban a myflixdb fájlhoz a következő eredményeket adja.
SUM('amount_paid') |
---|
10500 |
AVG funkció
A MySQL AVG függvény a megadott oszlopban szereplő értékek átlagát adja vissza . Csakúgy, mint a SUM függvény, csak numerikus adattípusokon működik .
Tegyük fel, hogy meg akarjuk találni az átlagos kifizetett összeget. A következő lekérdezést használhatjuk -
SELECT AVG(`amount_paid`) FROM `payments`;
A fenti lekérdezés MySQL munkaasztalon történő végrehajtásával a következő eredményeket kapjuk.
AVG('amount_paid') |
---|
3500 |
Összegzés
- A MySQL támogatja az öt (5) ISO szabványos összesített függvényt: a COUNT, SUM, AVG, MIN és MAX.
- A SUM és AVG funkciók csak numerikus adatokon működnek.
- Ha ki szeretné zárni az ismétlődő értékeket az összesített függvény eredményeiből, használja a DISTINCT kulcsszót. Az ALL kulcsszó még duplikátumokat is tartalmaz. Ha semmi nincs megadva, akkor az ALL alapértelmezettnek számít.
- Az összesített függvények használhatók más SQL záradékokkal, például a GROUP BY-vel együtt
Összerakós játékaik
Úgy gondolja, hogy az összesített funkciók egyszerűek. Próbáld ezt!
Az alábbi példa név szerint csoportosítja a tagokat, megszámolja a kifizetések teljes számát, az átlagos kifizetési összeget és a kifizetési összegek összegét.
SELECT m.`full_names`,COUNT(p.`payment_id`) AS `paymentscount`,AVG(p.`amount_paid`) AS `averagepaymentamount`,SUM(p.`amount_paid`) AS `totalpayments` FROM members m, payments p WHERE m.`membership_number` = p.`membership_number` GROUP BY m.`full_names`;
A fenti példa MySQL munkapadban történő végrehajtásával a következő eredményeket kapjuk.