MySQL open -source database management software bruker industristandarden Structured Query Language for datatransaksjoner og vedlikehold av databasen . Som med andre SQL dialekter , tilbyr mySQL et sett av aggregerte funksjoner som utfører statistisk matematikk på grupper av data . Du kan blande disse funksjonene med standard matematikk i programmene dine , men bare under visse forutsetninger . Aggregate funksjoner
Selv om de fleste matematiske funksjoner i SQL gjøre beregninger én post om gangen , samlet returnerer resultater for alle postene i et datasett eller en gruppe av poster i et sett. For eksempel, " AVG ( ) "-funksjonen tar gjennomsnittet av den angitte feltet for alle poster som returneres av en "SELECT " statement , som følgende SQL-kode illustrerer : en
SELECT AVG ( total_sales ) FROM kunder WHERE stat = ' NY ';
Denne uttalelsen viser gjennomsnittlig totalt salg for alle kunder i New York state. Det viser et enkelt tall . Du kan også bryte gjennomsnitt ned av staten, som i dette utsagnet : en
SELECT stat , AVG ( total_sales ) FROM kunder GROUP BY tilstand;
p Dette viser én linje per stat , noe som gir gjennomsnittlig salg tallet for alle kunder i staten.
Standard Math
standard matematiske funksjoner i mysql inkluderer addisjon, subtraksjon , multiplikasjon og divisjon , trigonometri , exponentials og flere andre. For felt i en tabell , utfører mySQL regnestykket på hver post . For eksempel vil vise det totale salget for en ordre posten, kan du multiplisere enhetsprisen av antall bestilte da dette SQL-setning viser:
SELECT unit_price , qty_ordered , unit_price * Antall bestilles fra bestillinger ;
følgende SELECT-setningen ikke fungerer, men:
SELECT unit_price * qty_ordered , AVG ( unit_price ) FROM ordre;
uttalelsen forsøker å blande samlede funksjoner og standard matematikk på en upassende måte . AVG ( ) -funksjonen returnerer en enkelt verdi , selv om unit_price * qty_ordered beregning kan returnere tusenvis av verdier. Du kan ikke ha det begge veier i en enkelt setning.
Blanding Aggregater
Du kan bruke flere aggregerte funksjoner i en enkelt SQL-setning . Dette fungerer fordi hver aggregat returnerer en enkelt verdi . For eksempel , hvis du ønsker gjennomsnittlig , minimum og maksimum priser i et bestillinger tabellen , kan du bruke følgende uttalelse : en
SELECT AVG ( unit_price ) , MIN ( unit_price ) , MAX ( unit_price ) FROM ordre;
blanding aggregater med standard felt og funksjoner
Du blande aggregater med standard felt ved å gruppere postene sammen , som følgende uttalelse viser:
SELECT product_number , AVG ( unit_price ) , MIN ( unit_price ) , MAX ( unit_price ) FROM ordre GROUP BY product_number ;
p Dette viser én linje per produktnummer , viser produktet med gjennomsnittlig , minimum og maksimum priser. Du kan blande standard og samlet funksjoner så lenge du grupperer poster sammen , for eksempel i følgende SQL-kode :
SELECT product_number , cost_per_m /1000 , AVG ( unit_price ) , MIN ( unit_price ) , MAX ( unit_price ) FRA bestillinger GROUP BY product_number ;
denne uttalelsen beregner en single- kostnad basert på en "cost per mølle ", eller et måltid per 1000 enheter , og viser dette tallet sammen med den gjennomsnittlige , minimum og maksimum pris . Du kan blande standard og samlet funksjoner hvis de vanlige funksjonene gjelder for aggregatene , som dette eksempelet viser : en
SELECT AVG ( unit_price ) , COUNT ( unit_price ) , AVG ( unit_price ) * ANTALL ( unit_price ) FROM ordre;
Her multipliserer SELECT-setningen resultatene av AVG () og ANTALL ( ) funksjonene sammen .