Free cookie consent management tool by TermsFeed Policy Generator
  •  Video
  •    34 page views
  •   5593 video views
  • 2025, July 30, Wednesday

#025 Como calcular total acumulado no SQL Server

Como calcular o valor total acumulado de um determinado período utilizando funções de janela no SQL Server

Iremos conhecer as técnicas:

1\. Definir referência de coluna (ALIAS):

  • No SQL Server, é possível atribuir um nome alternativo a uma coluna usando um alias. Isso pode ser útil para tornar o resultado da consulta mais legível.

SELECT NomeCliente AS Cliente

FROM TabelaClientes;

2\. Converter tipo de dados texto para data (CONVERT):

  • Use a função CONVERT para converter dados de texto em formato de data.

SELECT CONVERT(DATE, '2023-01-01') AS DataConvertida;

3\. Obter parte da data (DATEPART, YEAR, MONTH):

  • Utilize a função DATEPART para extrair partes específicas de uma data, como ano ou mês.

SELECT DATEPART(YEAR, DataNascimento) AS Ano

FROM TabelaClientes;

4\. Agregar valores (GROUP BY):

  • A cláusula GROUP BY é utilizada para agregar valores com base em uma ou mais colunas.

SELECT Departamento, AVG(Salario) AS MediaSalario

FROM TabelaFuncionarios

GROUP BY Departamento;

5\. Sub-consulta (SUBQUERY):

  • Uma subconsulta é uma consulta aninhada dentro de outra. Pode ser usada para recuperar dados que serão utilizados na condição da consulta principal.

SELECT Nome

FROM TabelaClientes

WHERE ID IN (SELECT ClienteID FROM TabelaPedidos);

6\. Função de janela OVER com ROWS de valores fixos (PRECEDING, FOLLOWING):

  • A função de janela OVER é usada para realizar cálculos em um conjunto ordenado de linhas relacionadas. As cláusulas PRECEDING e FOLLOWING especificam um intervalo fixo de linhas antes ou depois da linha atual.

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):

  • A cláusula PARTITION divide o conjunto de resultados em partições às quais a função de janela é aplicada. UNBOUNDED PRECEDING e CURRENT ROW são usados para definir o intervalo de linhas dinamicamente.

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.

This content contains
  • Content Video
  • Language Portuguese
  • Duration 11m 2s
  • Subtitles Não

  • Reading time 1 min 41 seg

avatar
Fabio Santos

Data Scientist and Consultant for Digital and Analytics Solutions


  • Share

Youtube Channel

@fabioms

Subscribe now