Como calcular o valor total acumulado de um determinado período utilizando funções de janela no SQL Server
1. Definir referência de coluna (ALIAS):
SELECT NomeCliente AS Cliente FROM TabelaClientes;
2. Converter tipo de dados texto para data (CONVERT):
SELECT CONVERT(DATE, '2023-01-01') AS DataConvertida;
3. Obter parte da data (DATEPART, YEAR, MONTH):
SELECT DATEPART(YEAR, DataNascimento) AS Ano FROM TabelaClientes;
4. Agregar valores (GROUP BY):
SELECT Departamento, AVG(Salario) AS MediaSalario FROM TabelaFuncionarios GROUP BY Departamento;
5. Sub-consulta (SUBQUERY):
SELECT Nome FROM TabelaClientes WHERE ID IN (SELECT ClienteID FROM TabelaPedidos);
6. Função de janela OVER com ROWS de valores fixos (PRECEDING, FOLLOWING):
SELECT Nome, Salario, SUM(Salario) OVER (ORDER BY DataContratacao ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS SomaSalario FROM TabelaFuncionarios;
7. Função de janela OVER, PARTITION com ROWS de valores dinâmicos (UNBOUNDED PRECEDING, CURRENT ROW):
SELECT Nome, Departamento, Salario, AVG(Salario) OVER (PARTITION BY Departamento ORDER BY DataContratacao ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS MediaSalario FROM TabelaFuncionarios;
Esses conceitos são fundamentais para consultas avançadas no Microsoft SQL Server, proporcionando flexibilidade e poder analítico.
Data Scientist and Consultant for Digital and Analytics Solutions
@fabioms