sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo obtener el número de cambio?

Puede lograr esto anidando dos funciones de ventana:la primera para obtener si src valor cambiado de la fila anterior, el segundo para sumar el número de cambios. Lamentablemente, Postgres no permite anidar funciones de ventana directamente, pero puede solucionarlo con una 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 _;