Apmācība MySQL apkopotajām funkcijām: SUM, AVG, MAX, MIN, COUNT, DISTINCT

Anonim

Apkopotās funkcijas ir paredzētas

  • Veikt aprēķinus vairākās rindās
  • No vienas tabulas kolonnas
  • Un atgriežot vienu vērtību.

ISO standarts nosaka piecas (5) kopējas funkcijas, proti;

1) Skaitīt

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

Kāpēc jāizmanto apkopotās funkcijas.

No biznesa viedokļa dažādiem organizācijas līmeņiem ir atšķirīgas informācijas prasības. Augstākā līmeņa vadītājiem parasti ir interese zināt veselus skaitļus, nevis atsevišķas detaļas.

> Kopsavilkuma funkcijas ļauj mums viegli izveidot apkopotus datus no mūsu datu bāzes.

Piemēram, no mūsu myflix datu bāzes pārvaldībai var būt nepieciešami šādi pārskati

  • Vismazāk iznomātās filmas.
  • Lielākā daļa nomāto filmu.
  • Vidējais katras filmas iznomāšanas mēnesī skaits.

Mēs viegli veidojam iepriekš minētos pārskatus, izmantojot apkopošanas funkcijas.

Apskatīsim detalizēti apkopotās funkcijas.

COUNT funkcija

Funkcija COUNT atgriež kopējo vērtību skaitu norādītajā laukā. Tas darbojas gan ar ciparu, gan bez ciparu datu tipiem. Visas apkopotās funkcijas pēc noklusējuma pirms datu apstrādes izslēdz nulles vērtības.

COUNT (*) ir īpaša funkcijas COUNT funkcija, kas atgriež visu norādītās tabulas rindu skaitu. COUNT (*) arī ņem vērā Nulls un dublikātus.

Zemāk redzamajā tabulā ir parādīti dati kustīgo tabulā

atsauces_ numurs Darījuma datums return_date dalībnieka numurs movie_id filma_ atgriezās
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

Pieņemsim, ka mēs vēlamies iegūt to reižu skaitu, kad filma ar ID 2 ir izīrēta

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

Iepriekš minētā vaicājuma izpildīšana MySQL darbagaldā pret myflixdb dod mums šādus rezultātus.

 
COUNT('movie_id')
3

DISTINCT Atslēgvārds

Atslēgvārds DISTINCT, kas ļauj mūsu rezultātos izlaist dublikātus. To panāk, grupējot līdzīgas vērtības kopā.

Lai novērtētu atšķirīgā jēdzienu, ļauj izpildīt vienkāršu vaicājumu

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

Tagad izpildīsim to pašu vaicājumu ar atšķirīgu atslēgvārdu -

SELECT DISTINCT `movie_id` FROM `movierentals`;

Kā parādīts zemāk, atšķirīgais no rezultātiem izlaiž ierakstu dublikātus.

 
movie_id
1
2
3

MIN funkcija

MIN funkcija atgriež mazāko vērtību norādītajā tabulas laukā .

Pieņemsim, ka mēs vēlamies uzzināt gadu, kurā tika izlaista vecākā filma mūsu bibliotēkā, lai iegūtu vajadzīgo informāciju, mēs varam izmantot MySQL MIN funkciju.

Šis vaicājums mums palīdz to sasniegt

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

Iepriekš minētā vaicājuma izpildīšana MySQL darbagaldā pret myflixdb dod mums šādus rezultātus.

 
MIN('year_released')
2005

MAX funkcija

Tāpat kā norāda nosaukums, funkcija MAX ir pretēja funkcijai MIN. Tas atgriež lielāko vērtību no norādītā tabulas lauka .

Pieņemsim, ka mēs vēlamies iegūt gadu, kad tika izlaista jaunākā filma mūsu datubāzē. Lai to panāktu, mēs viegli varam izmantot funkciju MAX.

Šis piemērs atgriež pēdējo izdoto filmas gadu.

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

Iepriekš minētā vaicājuma izpildīšana MySQL darbagaldā, izmantojot myflixdb, dod mums šādus rezultātus.

 
MAX('year_released')
2012

SUM funkcija

Pieņemsim, ka mēs vēlamies ziņojumu, kurā norādīta kopējā līdz šim veikto maksājumu summa. Mēs varam izmantot funkciju MySQL SUM, kas atgriež visu norādītajā slejā esošo vērtību summu . SUM darbojas tikai ciparu laukos . No atgrieztā rezultāta tiek izslēgtas nulles vērtības.

Šajā tabulā parādīti dati maksājumu tabulā -

maksājuma_ id dalībnieka numurs maksājuma datums apraksts samaksātā summa ārējā_ atsauce _numurs
1 1 23.07.2012 Filmas nomas maksa 2500 11
2 1 25.07.2012 Filmas nomas maksa 2000. gads 12
3 3 30.07.2012 Filmas nomas maksa 6000 NULL

Zemāk parādītais vaicājums iegūst visus veiktos maksājumus un tos summē, lai atgrieztu vienu rezultātu.

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

Izpildot iepriekš minēto vaicājumu MySQL darbagaldā pret myflixdb, tiek iegūti šādi rezultāti.

 
SUM('amount_paid')
10500

AVG funkcija

Funkcija MySQL AVG atgriež norādīto kolonnu vidējo vērtību . Tāpat kā funkcija SUM, tā darbojas tikai uz skaitliskiem datu tipiem .

Pieņemsim, ka mēs vēlamies atrast vidējo samaksāto summu. Mēs varam izmantot šādu vaicājumu -

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

Izpildot iepriekš minēto vaicājumu MySQL darbagaldā, tiek iegūti šādi rezultāti.

 
AVG('amount_paid')
3500

Kopsavilkums

  • MySQL atbalsta visas piecas (5) ISO standarta apkopotās funkcijas COUNT, SUM, AVG, MIN un MAX.
  • SUM un AVG funkcijas darbojas tikai ar skaitliskiem datiem.
  • Ja vēlaties no kopējo funkciju rezultātiem izslēgt vērtību dublikātus, izmantojiet atslēgvārdu DISTINCT. Atslēgvārds VIS ietver pat dublikātus. Ja nekas nav norādīts, ALL tiek pieņemts kā noklusējums.
  • Apkopotās funkcijas var izmantot kopā ar citām SQL klauzulām, piemēram, GROUP BY

Prāta mežģis

Jūs domājat, ka apkopošanas funkcijas ir vienkāršas. Izmēģiniet šo!

Šis piemērs grupē dalībniekus pēc nosaukuma, saskaita kopējo maksājumu skaitu, vidējo maksājuma summu un maksājumu kopsummu.

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

Iepriekš minētā piemēra izpildīšana MySQL darbagaldā dod mums šādus rezultātus.