Sammendrag: i denne opplæringen lærer du hvordan du bruker SQL PARTITION BY
klausul for å endre hvordan vinduefunksjonen beregner resultatet.
SQL PARTITION BY klausuloversikt
PARTITION BY
klausul er en underklausul av OVER
klausulen. PARTITION BY
-klausulen deler resultatet av et søk i partisjoner. Vindusfunksjonen betjenes på hver partisjon separat og beregner på nytt for hver partisjon.
Følgende viser syntaksen til PARTITION BY
-klausulen:
Du kan spesifisere en eller flere kolonner eller uttrykk for å partisjonere resultatsettet. expression1
, expression1
osv. Kan bare referere til kolonnene som er avledet av FROM
klausul. De kan ikke referere til uttrykk eller aliaser i listen over valg.
Uttrykkene til PARTITION BY
-satsen kan være kolonneuttrykk, skalarundersøking eller skalarfunksjon. Vær oppmerksom på at en skalarundersøking og skalarfunksjon alltid returnerer en enkelt verdi.
Hvis du utelater PARTITION BY
-klausulen, behandles hele resultatsettet som en enkelt partisjon.
DELING BY vs. GROUP BY
GROUP BY
-satsen brukes ofte i forbindelse med en samlet funksjon som SUM()
og AVG()
. GROUP BY
-klausulen reduserer antall rader som returneres ved å rulle dem opp og beregne summer eller gjennomsnitt for hver gruppe.
For eksempel returnerer følgende utsagn gjennomsnittet lønn til ansatte etter avdelinger:
Følgende bilde viser resultatet:
PARTITION BY
-delingen deler resultatsettet i partisjoner og endrer hvordan vinduefunksjonen beregnes. PARTITION BY
-klausulen reduserer ikke antall returnerte rader.
Følgende uttalelse returnerer den ansattes lønn og også gjennomsnittlig lønn for den ansattes avdeling:
Her er delvis utdata:
Med enkle ord er GROUP BY
-satsen samlet mens PARTITION BY
-satsen er analytisk.
I dette opplæring, du har lært om SQL PARTITION BY
klausul som endrer hvordan vinduefunksjonens resultat beregnes.
- Var denne opplæringen nyttig?
- JaNei