Sobes.tech
Junior — Middle

Explique o conceito de funções de janela em sistemas de gestão de bases de dados e sua aplicação.

sobes.tech IA

Resposta da IA

As funções de janela (window functions) em SGBDs permitem realizar cálculos sobre um conjunto de linhas relacionadas com a linha atual, sem agrupamento de dados. Elas expandem as capacidades das funções agregadas, fornecendo resultados para cada linha, mantendo os demais dados.

Principais características:

  • Operam sobre uma janela de linhas definida por OVER().
  • Permitem definir a ordem (ORDER BY) e a partição (PARTITION BY).
  • Permitem calcular somas móveis, classificação, totais acumulados, entre outros.

Exemplo de uso em SQL:

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

Aqui, para cada funcionário, é calculada a classificação do salário dentro do seu departamento.

Em C#, as funções de janela geralmente são aplicadas através de LINQ ou com consultas SQL a bancos de dados que suportam funções de janela.