Какви са прозоречните функции в SQL и за какво се използват?
sobes.tech AI
Отговор от AI
Функциите за прозорец (window functions) в SQL са функции, които извършват изчисления върху набор от редове, свързани с текущия ред, без да групират резултатите в един ред, както се случва с агрегатните функции.
Те позволяват, например, изчисляване на движещи се суми, класиране на редове, изчисляване на кумулативни суми, средни стойности и др., като същевременно запазват първоначалния брой редове в резултата.
Пример за използване на функцията за прозорец ROW_NUMBER():
SELECT
employee_id,
department_id,
salary,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank_in_dept
FROM employees;
Тук за всеки служител се изчислява неговият ранг по заплата в рамките на отдела, като се запазват всички редове.
Функциите за прозорец са полезни за анализи, отчети и сложни изчисления, където е необходимо да се вижда контекстът на всеки ред спрямо другите.