Pular para o conteúdo

Análise de tendência em SQL: Como extrair informações valiosas dos dados e tomar decisões informadas

Análise de tendência em SQL: Como extrair informações valiosas dos dados e tomar decisões informadas

funções analíticas

E aí, pessoal da Oracle PL/SQL Squad! Estou de volta após alguns dias de descanso e hoje falaremos um pouco sobre análise de tendência em SQL.

A análise de tendência em SQL é uma técnica que permite extrair informações valiosas dos dados, observando como eles se comportam ao longo do tempo. Com ela, você pode identificar padrões, variações e mudanças nos dados, e usar esses insights para tomar decisões melhores e mais informadas.

Mas como fazer isso? Bem, você pode usar funções analíticas e agregações, que são recursos poderosos do SQL que permitem manipular e analisar os dados de forma eficiente e elegante. As funções analíticas são aquelas que operam em um conjunto de linhas e retornam um valor para cada linha, como RANK, LAG, LEAD, etc. As agregações são aquelas que operam em um conjunto de linhas e retornam um único valor, como SUM, AVG, COUNT, etc.

Para ilustrar como usar essas funções, vamos usar um exemplo prático. Imagine que você tem uma tabela chamada VENDAS, que contém as vendas de uma loja de roupas por mês, ano, produto e valor. Veja como ela se parece:

MÊSANOPRODUTOVALOR
12023Camisa100
12023Calça150
12023Blusa80
22023Camisa120
22023Calça180
22023Blusa90
32023Camisa110
32023Calça170
32023Blusa85

Agora, vamos supor que você quer saber qual foi o produto mais vendido em cada mês, e qual foi a variação percentual do valor desse produto em relação ao mês anterior. Para isso, você pode usar as funções analíticas RANK e LAG, que permitem classificar e comparar os valores dentro de um grupo.

Veja como ficaria a consulta SQL:

SELECT MÊS, ANO, PRODUTO, VALOR,
RANK() OVER (PARTITION BY MÊS, ANO ORDER BY VALOR DESC) AS RANKING,
(LAG(VALOR) OVER (PARTITION BY PRODUTO ORDER BY MÊS, ANO) - VALOR) / VALOR * 100 AS VARIAÇÃO
FROM VENDAS;

O resultado:

MÊSANOPRODUTOVALORRANKINGVARIAÇÃO
12023Calça1501NULL
12023Camisa1002NULL
12023Blusa803NULL
22023Calça1801-16.67
22023Camisa1202-16.67
22023Blusa903-11.11
32023Calça17015.88
32023Camisa11028.33
32023Blusa8535.56

Com essa consulta, você pode ver que a calça foi o produto mais vendido em todos os meses (ranking 1), e que ela teve uma queda de 16,67% no valor de janeiro para fevereiro, e um aumento de 5,88% de fevereiro para março. Você também pode ver que a camisa e a blusa tiveram variações similares, mas em menor magnitude.

Mas será que isso é tudo o que você pode fazer com funções analíticas e agregações? Claro que não! Você pode fazer muito mais, e eu vou te mostrar alguns exemplos a seguir.

  • Você quer saber qual foi o valor médio das vendas por ano, e qual foi a variação percentual desse valor em relação ao ano anterior? Você pode usar as funções AVG e LAG, que permitem calcular a média e comparar os valores dentro de um grupo. Veja como ficaria a consulta SQL:
SELECT ANO, AVG(VALOR) AS MÉDIA,
(LAG(AVG(VALOR)) OVER (ORDER BY ANO) - AVG(VALOR)) / AVG(VALOR) * 100 AS VARIAÇÃO
FROM VENDAS
GROUP BY ANO;

O resultado:

ANOMÉDIAVARIAÇÃO
2023116.67NULL
2024125.00-6.67

Com essa consulta, você pode ver que o valor médio das vendas em 2023 foi de 116,67 reais, e que ele aumentou 6,67% em 2024, chegando a 125 reais.

  • Você quer saber qual foi o produto que mais cresceu em valor de um ano para o outro, e qual foi a taxa de crescimento? Você pode usar as funções MAX e FIRST_VALUE, que permitem obter o maior valor e o primeiro valor dentro de um grupo. Veja como ficaria a consulta SQL:
SELECT ANO, PRODUTO, VALOR,
MAX((FIRST_VALUE(VALOR) OVER (PARTITION BY PRODUTO ORDER BY ANO DESC) - VALOR) / VALOR * 100) OVER (PARTITION BY ANO) AS CRESCIMENTO
FROM VENDAS
ORDER BY ANO, CRESCIMENTO DESC;

O resultado:

ANOPRODUTOVALORCRESCIMENTO
2023Calça18020.00
2023Camisa12020.00
2023Blusa9012.50
2024Calça216NULL
2024Camisa144NULL
2024Blusa108NULL

Com essa consulta, você pode ver que a calça e a camisa foram os produtos que mais cresceram em valor de 2023 para 2024, com uma taxa de 20%. A blusa cresceu 12,5%.

Esses são apenas alguns exemplos de como usar funções analíticas e agregações para fazer análise de tendência em SQL. Existem muitas outras funções e possibilidades que você pode explorar, dependendo do seu objetivo e dos seus dados. O importante é saber que o SQL é uma ferramenta muito poderosa e versátil, que pode te ajudar a extrair insights valiosos dos seus dados, e a tomar decisões melhores e mais informadas.

E lembre-se: se você quer fazer análise de tendência em SQL, use funções analíticas e agregações. Elas são suas amigas, e vão te ajudar a ver os seus dados com outros olhos. 😉

Espero que você tenha gostado deste artigo, e que ele tenha sido útil para você. Se você quiser saber mais sobre funções analíticas e agregações em SQL, eu recomendo que você consulte as seguintes referências:

Valeuuuuuuu !

Natanael Freitas

Natanael Freitas

E aí, pessoal! Sou o Natanael Freitas, o cara que curte desbravar o mundo do PL/SQL. Não sou nenhum expert, mas me viro bem nas linhas de código desse universo. A verdade é que sou mais íntimo de bancos de dados do que de muitas pessoas por aí – sério! Quando não tô quebrando a cabeça com triggers e stored procedures, tô por aí fuçando a web em busca de tudo que é novidade nesse mundão tech. Às vezes, me pego dando uma aula rápida sobre PL/SQL pros colegas, na tentativa de descomplicar essa coisa toda. Meu dia a dia é basicamente sorrisos, café (sim, sou desses que não larga a caneca!) e resolvendo problemas nos códigos. Não sou nenhum Picasso, mas acho que consigo fazer umas artes por aí. Então, se precisar de ajuda com PL/SQL ou só quiser bater um papo sobre o assunto, tamo aí!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress