Complete your Databricks User Groups profile!

Fill out a few details about yourself so the community can get to know you.
Rio de Janeiro Databricks User Group

Nova Databricks SQL window fuction: counter_diff

Summary: Lucas Lessa explicou a função 'counter_diff', que calcula diferenças em contadores acumulativos em séries temporais, útil em contextos como produção industrial e consumo de energia. A função resolve problemas que podem ocorrer quando contadores são reiniciados, evitando interpretações errôneas de dados negativos. AUGUSTO SILVA agradeceu pela contribuição e destacou a eficiência dessa funcionalidade em evitar código desnecessário.
AI Summary

Essa função foi criada para trabalhar com contadores acumulativos em séries temporais. Ela calcula automaticamente a diferença entre o valor atual e o anterior, transformando o contador acumulado em uma variação por período.

Vamos a um exemplo prático?

Imagine uma fábrica que registre o total de peças produzidas por hora. Temos a seguinte tabela:

Hora Produção acumulada
08:00 1.000
09:00 1.125
10:00 1.260

Se usassemos a nova função counter_diff..

counter_diff(producao_acumulada) OVER ( ORDER BY hora )

Resultado:

Hora Produção acumulada Desvio
08:00 1.000 null
09:00 1.125 125
10:00 1.260 135

Antes, esse tipo de problema era resolvido com a função LAG().

Mas imagine que o contador da máquina seja reiniciado:
11:00 → 1.410
12:00 → 80
13:00 → 210

Um cálculo simples poderia gerar:
80 - 1.410 = -1.330 ❌

O counter_diff consegue identificar esse comportamento de reset do contador, evitando interpretar o reinício como uma produção negativa.

Essa é uma pequena funcionalidade bastante útil para trabalhar com dados de:

- Produção industrial
- Consumo de energia
- Consumo de água

OBS: Essa função necessita do Databricks Runtime 19+ habilitado.

1 comment

Excelente contribuição, Lucas!

Obrigado por compartilhar, é o tipo de "pequena feature" que elimina muito código.