Kokoonpanofunktiot sisään MySQL

Kokoonpanofunktioissa on kyse

  • Suoritetaan laskutoimituksia useilla riveillä
  • Taulukon yhdestä sarakkeesta
  • Ja palauttaa yhden arvon.

ISO-standardi määrittelee viisi (5) aggregaattifunktiota, nimittäin;

1) LASKE
2) SUMMA
3) AVG
4) MIN
5) MAX

Miksi käyttää aggregaattifunktioita

Liiketoiminnan näkökulmasta eri organisaatiotasoilla on erilaiset tietovaatimukset. Ylimmän tason johtajat ovat yleensä kiinnostuneita tietämään kokonaisia ​​lukuja, eivät välttämättä yksittäisiä yksityiskohtia.

Aggregaattitoimintojen avulla voimme helposti tuottaa yhteenvetotietoja tietokannastamme.

Esimerkiksi myflix-tietokannastamme johto saattaa vaatia seuraavia raportteja

  • Vähiten vuokratut elokuvat.
  • Useimmat vuokratut elokuvat.
  • Keskimääräinen määrä, jonka jokainen elokuva vuokrataan kuukaudessa.

Tuotamme yllä olevat raportit helposti koontifunktioiden avulla.

Tarkastellaan aggregaattifunktioita yksityiskohtaisesti.

COUNT-toiminto

COUNT-funktio palauttaa määritetyn kentän arvojen kokonaismäärän. Se toimii sekä numeerisissa että ei-numeerisissa tietotyypeissä. Kaikki koontifunktiot jättävät oletusarvoisesti pois nolla-arvot ennen tietojen käsittelemistä.

COUNT (*) on COUNT-funktion erityinen toteutus, joka palauttaa määritetyn taulukon kaikkien rivien määrän. COUNT (*) ottaa myös huomioon nollat ja kaksoiskappaleet.

Alla oleva taulukko näyttää tiedot elokuvavuokrataulukosta

viitenumero tapahtuma_päivä palautuspäivä jäsennumero elokuvan_tunnus elokuva_ palasi
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

Oletetaan, että haluamme saada, kuinka monta kertaa tunnuksella 2 oleva elokuva on vuokrattu

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

Suoritetaan yllä oleva kysely sisään MySQL työpöytä myflixdb:tä vastaan ​​antaa meille seuraavat tulokset.

COUNT('movie_id')
3

DISTINCT Avainsana

DISTINCT Avainsana

DISTINCT-avainsana, jonka avulla voimme jättää kaksoiskappaleet pois tuloksistamme. Tämä saavutetaan ryhmittelemällä samanlaiset arvot yhteen.

Jos haluat ymmärtää Distinct-konseptin, suoritetaan yksinkertainen kysely

SELECT `movie_id` FROM `movierentals`;

movie_id
1
2
2
2
3

Suoritetaan nyt sama kysely erillisellä avainsanalla-

SELECT DISTINCT `movie_id` FROM `movierentals`;

Kuten alla näkyy , differentiaali jättää päällekkäiset tietueet pois tuloksista.

movie_id
1
2
3

MIN-toiminto

MIN-toiminto palauttaa pienimmän arvon määritetyssä taulukkokentässä.

Oletetaan esimerkiksi, että haluamme tietää vuoden, jolloin kirjastomme vanhin elokuva julkaistiin, voimme käyttää MySQLMIN-toimintoa saadaksesi haluamasi tiedot.

Seuraava kysely auttaa meitä saavuttamaan sen

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

Suoritetaan yllä oleva kysely sisään MySQL työpenkki myflixdb:tä vastaan ​​antaa meille seuraavat tulokset.

MIN('year_released')
2005

MAX-toiminto

Kuten nimestä voi päätellä, MAX-toiminto on MIN-funktion vastakohta. Se palauttaa suurimman arvon määritetystä taulukkokentästä.

Oletetaan, että haluamme saada tietokannassamme olevan viimeisimmän elokuvan julkaisuvuoden. Voimme helposti käyttää MAX-toimintoa saavuttaaksemme sen.

Seuraava esimerkki palauttaa viimeisimmän julkaistun elokuvavuoden.

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

Suoritetaan yllä oleva kysely sisään MySQL työpenkki myflixdb:llä antaa meille seuraavat tulokset.

MAX('year_released')
2012

SUM-toiminto

Oletetaan, että haluamme raportin, joka kertoo tähän mennessä suoritettujen maksujen kokonaismäärän. Voimme käyttää MySQL SUMMA toiminto, joka palauttaa määritetyn sarakkeen kaikkien arvojen summan. SUM toimii vain numeerisissa kentissä. Nolla-arvot jätetään pois palautetusta tuloksesta.

Seuraava taulukko näyttää tiedot maksutaulukossa-

maksu_tunnus jäsennumero maksupäivä kuvaus maksettu summa ulkoinen_ viite _numero
1 1 23-07-2012 Elokuvan vuokran maksu 2500 11
2 1 25-07-2012 Elokuvan vuokran maksu 2000 12
3 3 30-07-2012 Elokuvan vuokran maksu 6000 NULL

Alla näkyvä kysely kerää kaikki suoritetut maksut ja laskee ne yhteen tulokseen.

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

Suoritetaan yllä oleva kysely sisään MySQL työpenkki myflixdb:tä vastaan ​​antaa seuraavat tulokset.

SUM('amount_paid')
10500

AVG toiminto

MySQL AVG toiminto palauttaa määritetyn sarakkeen arvojen keskiarvon. Aivan kuten SUM-funktio, se toimii vain numeerisilla tietotyypeillä.

Oletetaan, että haluamme löytää keskimääräisen maksetun summan. Voimme käyttää seuraavaa kyselyä -

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

Suoritetaan yllä oleva kysely sisään MySQL työpenkki, antaa meille seuraavat tulokset.

AVG('amount_paid')
3500

Brain Teaser

Luuletko, että aggregaatit ovat helppoja. Kokeile tätä!

Seuraava esimerkki ryhmittelee jäsenet nimen mukaan, laskee maksujen kokonaismäärän, keskimääräisen maksusumman ja maksusummien loppusumman.

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

Suorita yllä oleva esimerkki sisään MySQL työpöytä antaa meille seuraavat tulokset.

AVG toiminto

Yhteenveto

  • MySQL tukee kaikkia viittä (5) ISO-standardin mukaista aggregaattifunktiota COUNT, SUM, AVG, MIN ja MAX.
  • SUMMA ja AVG toiminnot toimivat vain numeerisilla tiedoilla.
  • Jos haluat sulkea pois päällekkäiset arvot koostefunktion tuloksista, käytä DISTINCT-avainsanaa. Avainsana KAIKKI sisältää jopa kaksoiskappaleet. Jos mitään ei ole määritetty, ALL oletetaan oletusarvoksi.
  • Aggregate-funktioita voidaan käyttää yhdessä muiden SQL-lauseiden kanssa, kuten GROUP BY

Tiivistä tämä viesti seuraavasti: