Sobes.tech
Middle

Какви са прозоречните функции в 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;

Тук за всеки служител се изчислява неговият ранг по заплата в рамките на отдела, като се запазват всички редове.

Функциите за прозорец са полезни за анализи, отчети и сложни изчисления, където е необходимо да се вижда контекстът на всеки ред спрямо другите.