Vadnica za združene funkcije MySQL: SUM, AVG, MAX, MIN, COUNT, DISTINCT

Anonim

Vse sestavljene funkcije so

  • Izvajanje izračunov v več vrsticah
  • Enega stolpca tabele
  • In vrnitev ene same vrednosti.

Standard ISO opredeljuje pet (5) skupnih funkcij in sicer;

1) ŠTEVILO

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

Zakaj uporabljati agregatne funkcije.

S poslovnega vidika imajo različne ravni organizacije različne zahteve po informacijah. Vodje najvišjih ravni običajno zanimajo celotne številke in niso potrebne posamezne podrobnosti.

> Združene funkcije nam omogočajo enostavno izdelavo strnjenih podatkov iz naše baze podatkov.

Na primer, iz naše baze podatkov myflix lahko upravljanje zahteva naslednja poročila

  • Najmanj najeti filmi.
  • Večina izposojenih filmov.
  • Povprečno število oddanih filmov v enem mesecu.

Zgornja poročila zlahka izdelamo z uporabo združenih funkcij.

Podrobneje poglejmo agregatne funkcije.

Funkcija COUNT

Funkcija COUNT vrne skupno število vrednosti v podanem polju. Deluje tako na številskih kot na numeričnih vrstah podatkov. Vse sestavljene funkcije privzeto pred delom na podatkih izključijo ničelne vrednosti.

COUNT (*) je posebna izvedba funkcije COUNT, ki vrne štetje vseh vrstic v določeni tabeli. COUNT (*) upošteva tudi nule in dvojnike.

Spodnja tabela prikazuje podatke v tabeli filmskih filmov

referenčna številka datum transakcije return_date številka_članstva movie_id film_ se je vrnil
11. 20. 6. 2012 NIČ 1. 1. 0
12. 22. 6. 2012 25. 6. 2012 1. 2. 0
13. 22. 6. 2012 25. 6. 2012 3. 2. 0
14. 21. 6. 2012 24. 6. 2012 2. 2. 0
15. 23. 6. 2012 NIČ 3. 3. 0

Recimo, da želimo ugotoviti, kolikokrat je bil film z id 2 izposojen

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

Izvedba zgornje poizvedbe v delovnem okolju MySQL proti myflixdb nam da naslednje rezultate.

 
COUNT('movie_id')
3

DISTINCT Ključna beseda

Ključna beseda DISTINCT, ki nam omogoča, da izpustimo dvojnike rezultatov. To dosežemo z združevanjem podobnih vrednosti.

Če želimo ceniti koncept Distinct, omogočimo preprosto poizvedbo

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

Zdaj pa izvedimo isto poizvedbo z ločeno ključno besedo -

SELECT DISTINCT `movie_id` FROM `movierentals`;

Kot je prikazano spodaj, ločeni izpusti podvojene zapise iz rezultatov.

 
movie_id
1
2
3

MIN funkcija

Funkcija MIN vrne najmanjšo vrednost v podanem polju tabele .

Denimo, da želimo vedeti, v katerem letu je bil najstarejši film v naši knjižnici izdan, lahko uporabimo funkcijo MIN MySQL, da dobimo želene informacije.

Naslednja poizvedba nam pomaga doseči to

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

Izvedba zgornje poizvedbe v delovnem okolju MySQL proti myflixdb nam da naslednje rezultate.

 
MIN('year_released')
2005

MAX funkcija

Kot že ime pove, je funkcija MAX nasprotna funkciji MIN. To vrne največjo vrednost iz določene tabele področju .

Predpostavimo, da želimo dobiti leto, ko je izšel najnovejši film iz naše baze podatkov. To lahko enostavno uporabimo s funkcijo MAX.

Naslednji primer prikazuje zadnje izdano filmsko leto.

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

Izvedba zgornje poizvedbe v delovnem okolju MySQL z uporabo myflixdb nam da naslednje rezultate.

 
MAX('year_released')
2012

Funkcija SUM

Recimo, da želimo poročilo, ki vsebuje skupni znesek do zdaj opravljenih plačil. Uporabimo lahko funkcijo MySQL SUM, ki vrne vsoto vseh vrednosti v določenem stolpcu . SUM deluje samo na številskih poljih . Ničelne vrednosti so izključene iz vrnjenega rezultata.

Naslednja tabela prikazuje podatke v tabeli plačil-

id_plačila številka_članstva dan plačila opis plačani znesek zunanja_ referenca _številka
1. 1. 23. 7. 2012 Plačilo izposoje filmov 2500 11.
2. 1. 25. 7. 2012 Plačilo izposoje filmov 2000 12.
3. 3. 30. 7. 2012 Plačilo izposoje filmov 6000 NIČ

Spodnja poizvedba prikaže vsa opravljena plačila in jih sešteje, da se vrne en rezultat.

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

Izvedba zgornje poizvedbe v delovnem okolju MySQL proti myflixdb daje naslednje rezultate.

 
SUM('amount_paid')
10500

Funkcija AVG

Funkcija MySQL AVG vrne povprečje vrednosti v določenem stolpcu . Tako kot funkcija SUM deluje tudi na numeričnih tipih podatkov .

Recimo, da želimo najti povprečni plačani znesek. Uporabimo lahko naslednjo poizvedbo -

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

Če izvedemo zgornjo poizvedbo v delovnem okolju MySQL, dobimo naslednje rezultate.

 
AVG('amount_paid')
3500

Povzetek

  • MySQL podpira vseh pet (5) standardnih skupnih funkcij ISO: COUNT, SUM, AVG, MIN in MAX.
  • Funkciji SUM in AVG delujeta le s številskimi podatki.
  • Če želite iz skupnih rezultatov funkcije izključiti podvojene vrednosti, uporabite ključno besedo DISTINCT. Ključna beseda ALL vključuje celo dvojnike. Če ni določeno nič, se za privzeto domneva VSE.
  • Združene funkcije se lahko uporabljajo skupaj z drugimi stavki SQL, kot je GROUP BY

Uganka

Mislite, da so sestavljene funkcije enostavne. Poskusite to!

Naslednji primer združuje člane po imenih, šteje skupno število plačil, povprečni znesek plačila in skupni znesek plačil.

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

Z izvajanjem zgornjega primera v delovnem okolju MySQL dobimo naslednje rezultate.