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.