Qual é a diferença entre uma função de janela e uma função de agregação em SQL?
sobes.tech IA
Resposta da IA
A função de agregação em SQL (por exemplo, SUM, AVG, COUNT) calcula um valor final para um grupo de linhas e retorna uma única linha por grupo. Por exemplo, SUM(salary) calculará a soma dos salários em todo o grupo.
A função de janela (window function) também trabalha com grupos de linhas, mas retorna um resultado para cada linha, considerando o contexto da janela (conjunto de linhas ao redor da linha atual). Por exemplo, SUM(salary) OVER (PARTITION BY department) retornará a soma dos salários por departamento para cada linha, sem reduzir o resultado a uma única linha.
Exemplo:
SELECT employee_id, department, salary,
SUM(salary) OVER (PARTITION BY department) AS dept_salary_sum
FROM employees;
Aqui, para cada linha, será exibida a soma dos salários no departamento, em vez de uma única linha por departamento, como acontece com a função de agregação com GROUP BY.