MySQLi koondfunktsioonide õpetus: SUM, AVG, MAX, MIN, COUNT, DISTINCT

Anonim

Koondfunktsioonid on kõik

  • Mitmel real arvutuste tegemine
  • Ühest tabeli veerust
  • Ja tagastades ühe väärtuse.

ISO standard määratleb viis (5) koondfunktsiooni, nimelt;

1) COUNT

2) SUM
3) AVG
4) MIN
5) MAX

Miks kasutada koondfunktsioone.

Äri seisukohalt on erinevatel organisatsioonitasanditel erinevad infonõuded. Tipptasemel juhid on tavaliselt huvitatud tervikute arvude tundmisest ja mitte üksikute detailide vajalikkusest.

> Koondfunktsioonid võimaldavad meil andmebaasist hõlpsasti kokkuvõtlikke andmeid toota.

Näiteks võib haldamine meie myflixi andmebaasist nõuda järgmisi aruandeid

  • Vähim renditud filmid.
  • Enamik renditud filme.
  • Keskmine arv, kui palju iga kuu filme välja renditakse.

Koostame koondfunktsioonide abil ülaltoodud aruandeid.

Uurime üksikasjalikult koondfunktsioone.

Funktsioon COUNT

Funktsioon COUNT tagastab määratud välja väärtuste koguarvu. See töötab nii arvuliste kui ka mittearvuliste andmetüüpide puhul. Kõik agregaatfunktsioonid välistavad enne andmete töötlemist vaikeväärtused.

COUNT (*) on funktsiooni COUNT spetsiaalne rakendus, mis tagastab määratud tabeli kõigi ridade arvu. COUNT (*) arvestab ka Nullsi ja duplikaate.

Allolevas tabelis on esitatud andmed tabelis Movierentals

viitenumber tehingu kuupäev tagastamise kuupäev liikmenumber movie_id film_ tagastati
11 20.06.2012 NULL 1 1 0
12 22.06.2012 25.06.2012 1 2 0
13 22.06.2012 25.06.2012 3 2 0
14 21.06.2012 24.06.2012 2 2 0
15 23.06.2012 NULL 3 3 0

Oletame, et tahame saada mitu korda filmi, mille ID on 2, välja renditud

SELECT COUNT(`movie_id`) FROM `movierentals` WHERE `movie_id` = 2;

Ülaltoodud päringu täitmine MySQL-i töölaual myflixdb vastu annab meile järgmised tulemused.

 
COUNT('movie_id')
3

DISTINCT märksõna

Märksõna DISTINCT, mis võimaldab meil duplikaadid oma tulemustest välja jätta. See saavutatakse sarnaste väärtuste rühmitamise teel.

Et mõista mõistet Distinct, laseb täita lihtsa päringu

SELECT `movie_id` FROM `movierentals`;
 
movie_id
1
2
2
2
3

Nüüd täidame sama päringu eraldi märksõnaga -

SELECT DISTINCT `movie_id` FROM `movierentals`;

Nagu allpool näidatud, jätab erill duplikaatide kirjed tulemustest välja.

 
movie_id
1
2
3

MIN funktsioon

Funktsioon MIN tagastab määratud tabeli välja väikseima väärtuse .

Oletame näiteks, et tahame teada aastat, mil meie raamatukogu vanim film ilmus, saame soovitud teabe saamiseks kasutada MySQL-i MIN-i funktsiooni.

Järgmine päring aitab meil seda saavutada

SELECT MIN(`year_released`) FROM `movies`;

Ülaltoodud päringu täitmine MySQL-i töölaual myflixdb vastu annab meile järgmised tulemused.

 
MIN('year_released')
2005

MAX funktsioon

Nii nagu nimigi ütleb, on MAX funktsioon vastupidine MIN funktsioonile. See tagastab määratud tabeli välja suurima väärtuse .

Oletame, et tahame saada aasta, mil meie andmebaasis ilmus uusim film. Selle saavutamiseks saame funktsiooni MAX hõlpsasti kasutada.

Järgmine näide tagastab viimase välja antud filmiaasta.

SELECT MAX(`year_released`) FROM `movies`;

Ülaltoodud päringu täitmine MySQL-i töölaual myflixdb abil annab meile järgmised tulemused.

 
MAX('year_released')
2012

Funktsioon SUM

Oletame, et soovime aruannet, mis sisaldab seni tehtud maksete kogusummat. Saame kasutada funktsiooni MySQL SUM, mis tagastab kõigi määratud veeru kõigi väärtuste summa . SUM töötab ainult numbriväljadel . Nullväärtused jäetakse tagastatud tulemusest välja.

Järgmine tabel näitab maksete tabeli andmeid

makse_ ID liikmenumber makse_kuupäev kirjeldus makstud summa väline_viide _number
1 1 23.07.2012 Filmirendi makse 2500 11
2 1 25-07-2012 Filmirendi makse 2000 12
3 3 30-07-2012 Filmirendi makse 6000 NULL

Allpool kuvatud päring saab kõik tehtud maksed ja summeerib need ühe tulemuse tagastamiseks.

SELECT SUM(`amount_paid`) FROM `payments`;

Ülaltoodud päringu täitmine MySQL-i töölaual myflixdb-ga annab järgmised tulemused.

 
SUM('amount_paid')
10500

AVG funktsioon

Funktsioon MySQL AVG tagastab määratud veeru väärtuste keskmise . Täpselt nagu funktsioon SUM, töötab see ka ainult arvandmetüüpidel .

Oletame, et tahame leida keskmise makstud summa. Saame kasutada järgmist päringut -

SELECT AVG(`amount_paid`) FROM `payments`;

Ülaltoodud päringu täitmine MySQL-i töölaual annab meile järgmised tulemused.

 
AVG('amount_paid')
3500

Kokkuvõte

  • MySQL toetab kõiki viit (5) ISO-standardi koondfunktsiooni COUNT, SUM, AVG, MIN ja MAX.
  • Funktsioonid SUM ja AVG töötavad ainult arvandmetel.
  • Kui soovite koondfunktsioonide tulemustest duplikaatväärtused välja jätta, kasutage märksõna DISTINCT. KÕIK märksõna sisaldab isegi duplikaate. Kui midagi pole täpsustatud, eeldatakse, et vaikevalik on ALL.
  • Agregaatfunktsioone saab kasutada koos teiste SQL-klauslitega, näiteks GROUP BY

Aju teaser

Teie arvates on liitfunktsioonid lihtsad. Proovi seda!

Järgmine näide rühmitab liikmed nime järgi, loendab maksete koguarvu, keskmise maksesumma ja maksesummade üldsumma.

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`;

Ülaltoodud näite täitmine MySQL-i töölaual annab meile järgmised tulemused.