PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie kann ich Gruppen von Partitionen in meiner Postgres-Tabelle mit Fensterfunktionen auflisten?

Sie scheinen so etwas wie 1 mehr als die kumulierte Summe der Teile zu wollen. Die einfachste Methode ist:

select t.*,
       (case when part = 1 then 0  -- the easy case
             else 1 + sum(part) over (order by id)
        end) as number
from t;

Wenn part kann andere Werte als 0 und 1 annehmen:

select t.*,
       (case when part = 1 then 0  -- the easy case
             else 1 + sum( (part = 1)::int ) over (order by id)
        end) as number
from t;