Sobes.tech
Middle

Ako rozdeliť údaje do skupín pomocou okienkových funkcií v SQL?

sobes.tech AI

Odpoveď od AI

Funkcie okna v SQL umožňujú vykonávať výpočty nad skupinami riadkov, bez znižovania výsledku na jeden riadok, ako pri GROUP BY. Pracujú so súborom riadkov (oknom), ktorý je definovaný pre každý riadok.

Na rozdelenie údajov do skupín a použitie funkcií okna sa používa konštrukcia OVER (PARTITION BY ...). Napríklad:

SELECT
  employee_id,
  department_id,
  salary,
  RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS salary_rank
FROM employees;

Tu sú údaje rozdelené do skupín podľa department_id, a v rámci každej skupiny sa vypočíta poradové číslo platu.

Týmto spôsobom funkcie okna umožňujú analyzovať údaje podľa skupín, pričom si zachovávajú všetky riadky pôvodnej tabuľky.