top of page
Foto do escritorDataphi Solutions

Tutorial SQL: analisando contexto com window function

A função de janela (window function) opera em um chamado "quadro de janelas", retornando um único valor para cada linha a partir da consulta subjacente.


As janelas são definidas pela clásula OVER().


Diferença entre funções de agregação e funções de janela?

Funções de agregação operam em um conjunto de linhas para retornar um único valor escalar, e as funções mais utilizadas são:


SUM() calcula a soma dos valores do conjunto

AVG() calcula a média dos valores do conjunto

MAX() e MIN() retorna os maiores e menores valores, respectivamente

COUNT() calcula a contagem de valores do conjunto


Utilizando a cláusula GROUP BY, é possível calcular os valores agregados.


Em window function (função de janela), é possível calcular os valores retornados aplicando funções de agregação, mas utlizando a cláusula OVER(). Assim, as agregações acontecem "olhando" para uma janela dos dados, e não seu todo.


Sintaxe da cláusula OVER()

[função de agregação] ([atributo de agregação)

OVER(PARTITION BY [atributos para "filtrar" a janela])


Para saber mais sobre a sintaxe da cláusula OVER(), clique aqui.


Analisando contexto, na prática

Nesse exemplo, vamos utilizar a base de dados de vendas abaixo.




Seus desafio, como analista de dados é:

Criar um relatório contendo o id do cliente e a data da venda; e

Calcular o valor acumulado das vendas por cliente e por ano/mês.


Para isso, usaremos o script:

SELECT

ClienteID,

DataVenda,

SUM(ValorVenda) OVER(PARTITION BY ClienteID, AnoVenda, MesVenda) as ValorVendaAnoMes

FROM [FatoVendas]


E, com isso, obtemos o resultado:

➽ Soma do valor vendido, agrupado por cliente, ano e mês da venda.

➽ Note que o atributo DataVenda não foi informado na cláusula OVER(), pois a cláusula OVER cria um subconjunto de dados individual, independente dos atributos retornados na consulta.

ClienteID

DataVenda

ValorVendaAnoMes

1

27/02/2024

           20.399,00

1

30/03/2024

           20.649,00

2

26/01/2024

           27.867,00

2

07/03/2024

           14.755,00

3

05/01/2024

           38.965,00

3

29/01/2024

           38.965,00

3

19/02/2024

           23.944,00

3

18/04/2024

           22.126,00

3

10/05/2024

           10.788,00

4

07/02/2024

           50.615,00

4

15/02/2024

           50.615,00

4

14/03/2024

           10.878,00

4

22/05/2024

           14.313,00

5

30/01/2024

           26.139,00

5

09/05/2024

           10.923,00


 

Quer saber mais sobre análise de contexto com SQL? Se inscreva para ser notificado sobre os novos conteúdos 🩵🚀

25 visualizações0 comentário

Posts recentes

Ver tudo

Comentarios


Inscreva-se e fique sempre atualizado!

Seja bem-vindo(a) a nossa comunidade 🚀

bottom of page