Mängdfunktioner är en praktisk funktion för Structured Query Language , och inkluderar matematiska operationer som beräknar maximala , genomsnittliga och totala värden , bland annat. Som termen antyder , driver en mängdfunktion på en hel uppsättning data , returnera ett enda värde oavsett hur många poster du väljer . Även om du oftast ser mängdfunktioner i huvuddelen av en SQL-sats , kan du använda dem i delfrågor också . Mängdfunktioner
SQL , mängdfunktioner har ett stort statistiskt syfte . Funktionerna , AVG ( ) , stdDev ( ) och varians ( ), till exempel , beräkna den genomsnittliga , standardavvikelsen och varians för en uppsättning siffror . Andra aggregerade funktioner fungerar på både numeriska och textdata , MIN ( ) och MAX ( ) hitta det största värdet för en databas fält om det innehåller ett nummer eller tecken . COUNT ( ) funktionen räknar antalet poster som valts i en SQL-sats . Till exempel visar följande uttalande antalet Kaliforniens kunder i en databas med ett saldo på minst $ 1.000:
SELECT COUNT ( * ) FROM kunder WHERE state = 'Ca' och balans > = 1000.00 ;
Underfrågor
WHERE av ett SQL SELECT , UPDATE , DELETE eller INSERT smalnar ner antalet poster uttalandet avkastning eller påverkar . Denna kraftfulla funktion ger finslipad resultat . Förutom att använda standardiserade villkor, såsom att jämföra ett fält till en bokstavlig värde , kan du använda SQL : s " IN " villkoret att jämföra ett fält till en lista med värden , som i följande exempel :
VÄLJ CUSTOMER_ID , namn , statligt FROM kunder WHERE stat ( " CA " , " NV " , " OR ');
Detta uttalande listar kunder från Kalifornien , Nevada och Oregon . En delfråga utökar detta koncept vidare genom att fylla i värden från en SELECT-sats inuti huvudsakliga välja det här exemplet illustrerar :
SELECT CUSTOMER_ID , namn , statligt FROM kunder WHERE stat ( SELECT DISTINCT stat sales_reps ) ;
SELECT visar de kunder som har en säljare i sitt tillstånd .
Aggregat i Underfrågor
Du kan lägga sofistikerade till en delfråga genom att lägga till en sammanlagd funktion . Till exempel kanske du vill ha en lista över Nevada kunder har balanserar större än den största för Kalifornien kunder , som i detta exempel :
SELECT CUSTOMER_ID , namn , statligt FROM kunder WHERE state = ' NV ' och balans > ( SELECT mAX ( balans ) FROM kunder WHERE state = ' CA ' ) ;
inre frågan bestämmer den maximala balansen för Kalifornien kunder , sedan använder den för att hitta Nevada kunder med större saldon
.
korrelerad Delfrågor
Ett därmed sammanhängande underfråga är en som använder samma tabell för inre och yttre frågor. Den inre sökfråga passerar resultat till det yttre , och vice versa. I följande exempel visas en lista över kunder vars balans är större än genomsnittet :
SELECT CUSTOMER_ID , namn , stat från kunder c1 WHERE saldo > ( SELECT AVG ( balans ) FROM kund C2 WHERE customer_id.c1 = CUSTOMER_ID . c2 ) ;
Notera att den yttre frågan använder aliaset kundtabellen " . C1 " den inre frågan använder " . c2 " The alias låter frågan att använda samma kund bord som två skilda tabeller
Addera ditt