MySQL összesített funkciók oktatóanyag: SUM, AVG, MAX, MIN, COUNT, DISTINCT

Anonim

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

2) SUM
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.