Free cookie consent management tool by TermsFeed Policy Generator
  • SQL Server Video
  •    34 page views
  •   4895 video views
  • 2024, February 25, Sunday

How to: Calculate Cumulative Total in 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