Rezumat: în acest tutorial, veți afla cum să utilizați SQL PARTITION BY
clauză pentru a schimba modul în care funcția fereastră calculează rezultatul.
SQL PARTITION BY clauza generală
Clauza PARTITION BY
este o subclauză a clauza OVER
. Clauza PARTITION BY
împarte setul de rezultate al unei interogări în partiții. Funcția fereastră este operată pe fiecare partiție separat și recalculează pentru fiecare partiție.
Următorul arată sintaxa clauzei PARTITION BY
:
Puteți specifica una sau mai multe coloane sau expresii pentru partiționarea setului de rezultate. expression1
, expression1
etc. se poate referi doar la coloanele derivate de FROM
clauză. Nu pot face referire la expresii sau aliasuri din lista de selectare.
Expresiile clauzei PARTITION BY
pot fi expresii de coloană, subinterogare scalară sau funcție scalară. Rețineți că o subinterogare scalară și o funcție scalară returnează întotdeauna o singură valoare.
Dacă omiteți clauza PARTITION BY
, întregul set de rezultate este tratat ca o singură partiție.
PARTITION BY vs. GROUP BY
Clauza GROUP BY
este folosită adesea împreună cu o funcție agregată precum SUM()
și AVG()
. Clauza GROUP BY
reduce numărul de rânduri returnate rotindu-le și calculând sumele sau mediile pentru fiecare grup.
De exemplu, următoarea declarație returnează media salariul angajaților pe departamente:
Următoarea imagine arată rezultatul:
Clauza PARTITION BY
împarte setul de rezultate în partiții și modifică modul în care este calculată funcția ferestrei. Clauza PARTITION BY
nu reduce numărul de rânduri returnate.
Următoarea declarație returnează salariul angajatului și, de asemenea, salariul mediu al departamentului angajatului:
Iată rezultatul parțial:
În cuvinte simple, clauza GROUP BY
este agregată, în timp ce clauza PARTITION BY
este analitică.
tutorial, ați aflat despre clauza SQL PARTITION BY
care modifică modul în care este calculat rezultatul funcției ferestrei.
- A fost util acest tutorial?
- Da Nu