Análise de tendência em SQL: Como extrair informações valiosas dos dados e tomar decisões informadas
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ÊS | ANO | PRODUTO | VALOR |
---|---|---|---|
1 | 2023 | Camisa | 100 |
1 | 2023 | Calça | 150 |
1 | 2023 | Blusa | 80 |
2 | 2023 | Camisa | 120 |
2 | 2023 | Calça | 180 |
2 | 2023 | Blusa | 90 |
3 | 2023 | Camisa | 110 |
3 | 2023 | Calça | 170 |
3 | 2023 | Blusa | 85 |
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ÊS | ANO | PRODUTO | VALOR | RANKING | VARIAÇÃO |
---|---|---|---|---|---|
1 | 2023 | Calça | 150 | 1 | NULL |
1 | 2023 | Camisa | 100 | 2 | NULL |
1 | 2023 | Blusa | 80 | 3 | NULL |
2 | 2023 | Calça | 180 | 1 | -16.67 |
2 | 2023 | Camisa | 120 | 2 | -16.67 |
2 | 2023 | Blusa | 90 | 3 | -11.11 |
3 | 2023 | Calça | 170 | 1 | 5.88 |
3 | 2023 | Camisa | 110 | 2 | 8.33 |
3 | 2023 | Blusa | 85 | 3 | 5.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:
ANO | MÉDIA | VARIAÇÃO |
---|---|---|
2023 | 116.67 | NULL |
2024 | 125.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:
ANO | PRODUTO | VALOR | CRESCIMENTO |
---|---|---|---|
2023 | Calça | 180 | 20.00 |
2023 | Camisa | 120 | 20.00 |
2023 | Blusa | 90 | 12.50 |
2024 | Calça | 216 | NULL |
2024 | Camisa | 144 | NULL |
2024 | Blusa | 108 | NULL |
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 !