PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como obter o número da mudança?


Você pode conseguir isso aninhando duas funções de janela - a primeira para saber se o src valor alterado da linha anterior, o segundo para somar o número de alterações. Infelizmente, o Postgres não permite aninhar funções de janela diretamente, mas você pode contornar isso com uma subconsulta:
SELECT
  id,
  src,
  sum(incr) OVER (ORDER BY id)
FROM (
  SELECT
    *,
    (lag(src) OVER (ORDER BY id) IS DISTINCT FROM src)::int AS incr
  FROM example
) AS _;