PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment obtenir le numéro de modification ?

Vous pouvez y parvenir en imbriquant deux fonctions de fenêtre - la première pour savoir si le src valeur modifiée par rapport à la ligne précédente, la seconde pour additionner le nombre de modifications. Malheureusement, Postgres n'autorise pas l'imbrication directe des fonctions de fenêtre, mais vous pouvez contourner ce problème avec une sous-requête :

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 _;