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