Du kan bruge grundlæggende SQL-forespørgsler til at hente data fra en database, men det giver ofte ikke tilstrækkelig intelligens til at opfylde forretningsbehov. SQL giver dig også mulighed for at gruppere forespørgselsresultater baseret på attributter på rækkeniveau for at anvende aggregatfunktioner ved hjælp af GROUP BY-klausulen. Overvej f.eks. En ordningsdatabord bestående af attributterne nedenfor:
- Ordre ID - en numerisk værdi, der unikt identificerer hver ordre Dette felt er den primære nøgle til databasen.
- Sælger - En tekstværdi med navnet på den sælger, der solgte produkterne. Dette felt er en fremmed nøgle til en anden tabel, der indeholder personoplysninger.
- Kunde ID - en numerisk værdi svarende til et kundekontonummer Dette felt er også en fremmed nøgle, der refererer til en tabel indeholdende kundekontooplysninger.
- Omsætning - en numerisk værdi svarende til dollarens størrelse af salget.
Når det kommer tid til at gennemføre anmeldelser af resultater for sælgere, indeholder ordningstabellen værdifulde oplysninger, der kan bruges til denne gennemgang. Når du vurderer Jim, kan du for eksempel skrive en simpel forespørgsel, der henter alle Jims salgsposter:
VÆLG *
FRA Ordrer
Hvor Sælger LIKE 'Jim'
Dette ville hente alle poster fra databasen svarende til salg foretaget af Jim: OrderID Sælger CustomerID indtjening
12482 Jim 182 40000
12488 Jim 219 25000
12519 Jim 137 85000
12602 Jim 182 10000
12741 Jim 155 90000
Du kan gennemgå disse oplysninger og udføre nogle manuelle beregninger for at komme med resultatstatistik, men det ville være en kedelig opgave, som du skulle gentage for hver sælger i virksomheden. I stedet kan du erstatte dette arbejde med et enkelt GROUP BY-forespørgsel, der beregner statistikker for hver sælger i virksomheden. Du skriver simpelthen spørgsmålet og angiver, at databasen skal gruppere resultaterne baseret på feltet Sælger. Du kan derefter bruge nogen af SQL-aggregatfunktionerne til at udføre beregninger på resultaterne. Her er et eksempel. Hvis du udførte følgende SQL-sætning: SELV Sælger, SUM (Indtægter) AS 'Total', MIN (Indtægter) AS 'Mindste', MAX (Indtægter) AS 'Største', AVG (Indtægter) AS 'Gennemsnit', COUNT (Indtægter) AS 'Antal'
FRA Ordrer
GROUP BY Sælger
Du ville få følgende resultater: Sælger Total Små Største Gennemsnitlig Antal
Jim 250000 10000 90000 50000 5
Mary 342000 24000 102000 57000 6
Bob 118000 4000 36000 39333 3
Som du kan se, giver denne kraftfulde funktion dig mulighed for at generere små rapporter fra en SQL-forespørgsel, der giver værdifuld forretningsinformation til lederen, der udfører præstationsvurderingerne. GROUP BY-klausulen bruges ofte i databaser til dette formål og er et værdifuldt værktøj i DBA's tricks taske.