SQL PARTITION BY (Română)

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

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *