Resumé: i denne vejledning lærer du hvordan du bruger SQL PARTITION BY
klausul for at ændre, hvordan vinduesfunktionen beregner resultatet.
SQL PARTITION BY klausuloversigt
PARTITION BY
klausul er en underklausul af OVER
-klausulen. PARTITION BY
-klausulen deler en forespørgsels resultat i partitioner. Vinduesfunktionen betjenes på hver partition separat og genberegnes for hver partition.
Følgende viser syntaksen for PARTITION BY
-klausulen:
Du kan angive en eller flere kolonner eller udtryk for at opdele resultatsættet. expression1
, expression1
osv. Kan kun henvise til kolonnerne afledt af FROM
klausul. De kan ikke henvise til udtryk eller aliaser i listen over valg.
Udtrykkene fra PARTITION BY
-klausulen kan være kolonneudtryk, skalarunderforespørgsel eller skalarfunktion. Bemærk, at en skalær underforespørgsel og skalarfunktion altid returnerer en enkelt værdi.
Hvis du udelader PARTITION BY
-klausulen, behandles hele resultatsættet som en enkelt partition.
PARTITION BY vs. GROUP BY
GROUP BY
-klausulen bruges ofte sammen med en samlet funktion såsom SUM()
og AVG()
. GROUP BY
-klausulen reducerer antallet af returnerede rækker ved at rulle dem op og beregne summen eller gennemsnittet for hver gruppe.
For eksempel returnerer følgende udsagn gennemsnittet løn for medarbejdere efter afdelinger:
Følgende billede viser resultatet:
PARTITION BY
-klausulen deler resultatsættet i partitioner og ændrer, hvordan vinduesfunktionen beregnes. PARTITION BY
klausul reducerer ikke antallet af returnerede rækker.
Følgende udsagn returnerer medarbejderens løn og også den gennemsnitlige løn for medarbejderens afdeling:
Her er den delvise output:
Med enkle ord er GROUP BY
-klausulen samlet, mens PARTITION BY
-klausulen er analytisk.
I denne tutorial, du har lært om SQL PARTITION BY
klausul, der ændrer, hvordan vinduesfunktionens resultat beregnes.
- Var denne tutorial nyttig?
- JaNej