Sobes.tech
Middle

Kaip suskirstyti duomenis į grupes naudojant langines funkcijas SQL?

sobes.tech AI

Atsakymas iš AI

SQL lango langelinių funkcijos leidžia atlikti skaičiavimus grupėse eilučių, ne sumažinant rezultatą iki vienos eilutės, kaip naudojant GROUP BY. Jos veikia su eilutėmis (langeliu), kuris yra apibrėžtas kiekvienai eilutei.

Norint suskirstyti duomenis į grupes ir taikyti langelio funkcijas, naudojama konstrukcija OVER (PARTITION BY ...). Pavyzdžiui:

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

Čia duomenys yra suskirstyti pagal department_id, ir kiekvienos grupės viduje skaičiuojamas atlyginimo rangas.

Taip, langelio funkcijos leidžia analizuoti duomenis pagal grupes, išlaikant visas pirminės lentelės eilutes.