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.