Sobes.tech
Middle

Kuidas jagada andmeid rühmadesse, kasutades SQL-i aknafunktsioone?

sobes.tech AI

Vastus AI-lt

SQL-i akna funktsioonid võimaldavad teha arvutusi ridade gruppides, mitte vähendada tulemust üheks reale nagu GROUP BY puhul. Nad töötavad ridade kogumiga (aken), mis on määratletud iga rea jaoks.

Andmete jagamiseks gruppidesse ja akna funktsioonide rakendamiseks kasutatakse konstruktsiooni OVER (PARTITION BY ...). Näiteks:

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

Siin jagatakse andmed department_id järgi gruppidesse, ja iga grupi sees arvutatakse palga järjestaatus.

Seega võimaldavad akna funktsioonid andmete analüüsi gruppide kaupa, säilitades samal ajal kõik algse tabeli read.