Indholdsfortegnelse
Gruppefunktioner er indbygget i SQL -funktioner, der fungerer på grupper af rækker og returnerer en værdi for hele gruppen. Disse funktioner er: GROUP, HAVING, COUNT, MAX, MIN, AVG, SUM, DISTINCT.Klausulen GRUPPE AF bruges sammen med gruppefunktioner til at hente data grupperet efter en eller flere kolonner.
Subtotals kan fås med GROUP BY -klausulen. En forespørgsel med en GROUP BY -klausul kaldes en grupperet forespørgsel, fordi den grupperer dataene i kildetabellen og producerer en enkelt oversigtsrække for hver dannet gruppe. De kolonner, der er angivet i GROUP BY, kaldes grupperingskolonner.
Antag en salgstabel med følgende felter
Id | produkt | pris | mængde | id sælger
Eksempel:
VÆLG SUM (pris) som samlet salg FRA salg
Får summen af det samlede salg, der blev foretaget, værdien tildeles det samlede salg
VÆLG SUM (salg) FRA salgsgruppe AF id -medarbejderDer dannes en gruppe for hver medarbejder, og summen beregnes over rækker i hver gruppe. Det foregående eksempel får en liste med summen af salget for hver enkelt af medarbejderne.
Forespørgslen ville være bedre at inkludere navnet på medarbejderen på valglisten for at vide, hvilken medarbejder summen af salget svarer til:
VÆLG medarbejdernavn, SUM (pris) SOM salgsmedarbejder FRA salg, medarbejdere Hvor salg.medarbejder = medarbejdere.medarbejder KONCERNE Ide medarbejder
Kun:
konstante værdier
kolonne funktioner
gruppering af kolonner (kolonner, der vises i GROUP BY -klausulen)
eller ethvert udtryk baseret på ovenstående.
Eksempel: Vi vil, hvis vi havde filialer, og vi vil gerne få summen af salget af medarbejderne grupperet efter region og by:
VÆLG SUM (pris) som salg efter afdeling FRA salgsgruppe efter region, by
Det grupperes først efter region og inden for hver region efter by.
Alle rækker, der har en nullværdi i grupperingsfeltet, bliver til en enkelt gruppe. Det vil sige, at den behandler nulværdien som enhver værdi til gruppering.
HAVING -klausulen
HAVING -klausulen giver os mulighed for at vælge rækker fra tabellen, der er resultatet af en grupperingsforespørgsel
Kun følgende kan vises i valgbetingelsen:
konstante værdier
kolonne funktioner
gruppering af kolonner (kolonner, der vises i GROUP BY -klausulen)
eller ethvert udtryk baseret på ovenstående.
Eksempel: Vi vil vide, hvilke medarbejdere der solgte mere end 10.000 euro
VÆLG * FRA SALGSGRUPPE VED id -medarbejder, der har AVG (pris)> 10000
For at opnå det efterspurgte skal vi beregne medarbejdernes gennemsnitlige salg. Vi skal gruppere medarbejderne efter id og beregne gennemsnittet for hvert salg pr. end 10.000.
Hvordan køres en gruppeforespørgsel internt?
Først dannes datakildetabellen i henhold til FROM -klausulen,
rækkerne vælges fra datakilden i henhold til WHERE -klausulen,
ræggrupper dannes i henhold til GROUP BY -klausulen,
For hver gruppe opnås en række i den resulterende tabel med de værdier, der vises i GROUP BY, HAVING -klausulerne og i valglisten,
rækkerne vælges fra den resulterende tabel i henhold til HAVING -klausulen,
kolonner, der ikke vises på valglisten, fjernes fra den resulterende tabel,
rækkerne i den resulterende tabel er ordnet i henhold til ***** BY -klausulen
En forespørgsel bliver til en gruppeforespørgsel, så snart GROUP BY, HAVING eller en kolonnefunktion vises.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt