mysql databas med öppen källkod programvara använder branschstandarden Structured Query Language for datatransaktioner och upprätthålla databaser . Som med andra SQL dialekter , erbjuder mySQL en uppsättning mängdfunktioner som utför statistisk matematik på grupper av uppgifter . Du kan blanda dessa funktioner med vanlig matematik i dina program , men bara under vissa villkor . Mängdfunktioner
Även om de flesta matematiska funktioner i SQL gör beräkningar en post i taget , mängdfunktioner ger resultat för alla poster i en datamängd eller grupp av poster i ett set . Till exempel " AVG ( ) "-funktion tar genomsnittet av den angivna villkor för alla poster som returneras av en " SELECT " uttalande , som följande SQL- kod visar :
SELECT AVG ( total_sales ) FROM kunder WHERE tillstånd = ' NY ' ,
Detta uttalande visar de genomsnittliga totala försäljningen för samtliga kunder i New York state . Den visar ett enda nummer. Du kan också bryta genomsnitt ned av staten , som i detta uttalande :
SELECT tillstånd , AVG ( total_sales ) FROM kunder GROUP BY staten ,
Detta visar en rad per stat , vilket ger den genomsnittliga försäljningen siffra för samtliga kunder inom staten . Addera Standard Math
vanliga matematiska funktioner i MySQL inkluderar addition, subtraktion , multiplikation och division , trigonometri , exponential och flera andra . För fält i en tabell , utför mySQL matten på varje post . Till exempel , för att visa den totala försäljningen för en order rekord , kan du multiplicera enhetspriset med beställda kvantiteten som denna SQL-sats visar :
SELECT unit_price , qty_ordered , unit_price * st beställas från order ,
följande SELECT fungerar inte , men :
SELECT unit_price * qty_ordered , AVG ( unit_price ) FROM order ,
uttalandet försöker blanda mängdfunktioner och standard matematiska på ett olämpligt sätt . Den AVG ( ) returnerar ett enda värde , även om unit_price * qty_ordered beräkning kan returnera tusentals värden . Du kan inte ha både och i ett enda uttalande .
Blandning Ballast
Du kan använda flera mängdfunktioner i en enda SQL-sats . Detta fungerar eftersom varje aggregat returnerar ett enda värde . Till exempel , om du vill att den genomsnittliga , minsta och största priser en order tabellen , kan du använda följande uttalande :
SELECT AVG ( unit_price ) , MIN ( unit_price ) , MAX ( unit_price ) FROM order ;
blandning aggregat med standard fält och funktioner
Du blandar aggregat med vanliga fält genom att gruppera posterna tillsammans , som i följande uttalande visar :
SELECT product_number , AVG ( unit_price ) , MIN ( unit_price ) , mAX ( unit_price ) FROM order GROUP BY product_number ,
Detta visar en rad per produktnummer , som visar att produkten uppfyller de genomsnittliga , minsta och högsta priser . Du kan blanda standard och aggregat fungerar så länge du gruppera poster tillsammans, till exempel i följande SQL-kod :
SELECT product_number , cost_per_m /1000 , AVG ( unit_price ) , MIN ( unit_price ) , MAX ( unit_price ) FRÅN order GROUP BY product_number ,
detta uttalande beräknar en enda punkt anskaffningsvärde baserat på en " kostnad per mill , " eller kostnad per 1000 enheter , och visar denna siffra tillsammans med den genomsnittliga, minsta och högsta pris . Du kan blanda standard och aggregerade funktioner om standardfunktionerna tillämpliga på aggregaten , som detta exempel visar :
SELECT AVG ( unit_price ) , COUNT ( unit_price ) , AVG ( unit_price ) * COUNT ( unit_price ) FROM order ;
Här multiplicerar SELECT resultaten av AVG ( ) och COUNT ( ) fungerar tillsammans .