Du kan bruke grunnleggende SQL-spørringer for å hente data fra en database, men dette gir ofte ikke nok intelligens til å oppfylle forretningskrav. SQL gir deg også muligheten til å gruppere søkeresultater basert på radnivåattributter for å kunne bruke aggregatfunksjoner ved hjelp av GROUP BY-klausulen. Tenk for eksempel en ordningsdatabord bestående av attributene nedenfor:
- Bestillings ID - En numerisk verdi som unikt identifiserer hver ordre. Dette feltet er primærnøkkelen for databasen.
- Selger - En tekstverdi som gir navnet på selgeren som solgte produktene. Dette feltet er en utenlandsk nøkkel til en annen tabell som inneholder personellinformasjon.
- Kunde ID - en numerisk verdi som tilsvarer et kundekontonummer Dette feltet er også en utenlandsk nøkkel, og refererer til en tabell som inneholder kundekontoinformasjon.
- inntekter - en tallverdi som tilsvarer dollarbeløpet på salget.
Når det kommer tid til å gjennomføre resultatomtaler for selgere, inneholder ordre-tabellen verdifull informasjon som kan brukes til denne anmeldelsen. Når du vurderer Jim, kan du for eksempel skrive en enkel spørring som henter alle Jims salgsposter:
Å VELGE *
FRA Ordrer
HVOR SELSKAPER LIKE 'Jim'
Dette ville hente alle poster fra databasen som svarer til salg fra Jim: OrderID-selger KundID-inntekt
12482 Jim 182 40000
12488 Jim 219 25000
12519 Jim 137 85000
12602 Jim 182 10000
12741 Jim 155 90000
Du kan vurdere denne informasjonen og utføre noen manuelle beregninger for å komme opp med resultatstatistikk, men dette ville være en kjedelig oppgave som du måtte gjenta for hver selger i selskapet. I stedet kan du erstatte dette arbeidet med en enkelt GROUP BY-spørring som beregner statistikk for hver selger i selskapet. Du skriver bare spørringen og angir at databasen skal gruppere resultatene basert på selgerfeltet. Du kan da bruke noen av SQL-aggregatfunksjonene til å utføre beregninger på resultatene. Her er et eksempel. Hvis du kjørte følgende SQL-setning: SELG Sælger, SUM (Inntekt) AS 'Total', MIN (Inntekt) AS 'Minste', MAX (Inntekt) AS 'Største', AVG (Inntekt) AS 'Gjennomsnittlig', COUNT (Inntekt) AS 'Nummer'
FRA Ordrer
GROUP BY SELSKAPER
Du vil få følgende resultater: Selger Totalt Små Største Gjennomsnittlig Antall
Jim 250000 10000 90000 50000 5
Mary 342000 24000 102000 57000 6
Bob 118000 4000 36000 39333 3
Som du kan se, gir denne kraftige funksjonen mulighet til å generere små rapporter fra en SQL-spørring, og gir verdifull forretningsinformasjon til lederen som gjennomfører resultatene. GROUP BY-klausulen brukes ofte i databaser til dette formålet, og er et verdifullt verktøy i DBA-saken med triks.