Samlede funksjoner er en hendig funksjon for Structured Query Language , og inkluderer matematiske operasjoner som beregne maksimal , gjennomsnittlig og total verdier , blant andre. Som uttrykket antyder , driver en samlet funksjon på et helt sett med data , returnerer en enkelt verdi uavhengig av antall poster du velger. Selv om du oftest se et sammendrag av funksjonene i den viktigste delen av en SQL-setning , kan du bruke dem i subqueries også . Aggregerte funksjoner
I SQL, aggregerte funksjoner har en stor grad statistisk formål . Funksjonene , AVG ( ) , stdDev ( ) og varians ( ) , for eksempel beregne gjennomsnitt, standardavvik og varians for et sett med tall . Andre samlede funksjoner fungerer på både numerisk og tekst data , MIN ( ) og max ( ) finne den største verdien for en database felt om det inneholder et tall eller tegn. Den ANTALL ( )-funksjonen teller antall poster valgt i en SQL-setning . For eksempel viser følgende uttalelse antall California kunder i en database med balanserer på minst $ 1000 :
SELECT COUNT ( * ) FROM kunder WHERE state = ' CA ' AND balanse > = 1000.00;
Delspørringer
WHERE klausulen av en SQL SELECT, UPDATE , SLETT eller SETT begrenser antall poster uttalelsen returnerer eller påvirker. Denne kraftige funksjonen gir finslipt resultater . I tillegg til å bruke standard betingelser , for eksempel sammenligne et felt i en bokstavelig verdi, kan du bruke SQL er " IN" betingelse for å sammenligne et felt til en liste over verdier , som i følgende eksempel : en
SELECT CUSTOMER_ID , navn , oppgi fra kunder WHERE state IN ( ' CA ', ' NV ', ' ELLER ');
Denne uttalelsen lister kunder fra California , Nevada og Oregon. En delspørring utvider dette konseptet videre ved å fylle ut verdier fra en SELECT-setning inne i hoved SELECT , som dette eksemplet illustrerer : en
SELECT CUSTOMER_ID , navn , oppgi fra kunder WHERE state IN ( SELECT DISTINCT tilstand FRA sales_reps );
p Dette SELECT viser de kundene som har en salgsrepresentant i en stat.
Aggregater i Delspørringer
Du kan legge raffinement til en subquery ved tilsetning av en samlet funksjon . For eksempel kan du ha en liste over Nevada kunder som har balanserer større enn det største for California kunder , som i dette eksempelet : en
SELECT CUSTOMER_ID , navn , oppgi fra kunder WHERE state = ' NV ' og balanse > ( SELECT MAX ( balanse) FROM kunder WHERE state = ' CA' );
indre spørringen bestemmer maksimal balanse for California kunder , deretter bruker den til å finne Nevada kunder med større beløp
.
Korrelatert Delspørringer
korrelert delspørring er en som bruker samme bord for indre og ytre spørringer. Den indre spørring passerer resultater til det ytre , og vice versa . Følgende eksempel viser en liste over kunder hvis balansen er større enn gjennomsnittet : en
SELECT CUSTOMER_ID , navn , oppgi fra kunder c1 WHERE balanse > ( SELECT AVG ( balanse) FROM kunde c2 WHERE customer_id.c1 = CUSTOMER_ID . c2 ) ;
Merk at den ytre spørringen bruker tabellen kunde alias " . c1 " den indre spørringen bruker " . c2 " aliasene tillater spørringen å bruke samme kunde bordet som to forskjellige tabeller