sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan opregner man grupper af partitioner i min Postgres-tabel med vinduesfunktioner?

Du ser ud til at ville have noget som 1 mere end den kumulative sum af delene. Den enkleste metode er:

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

Hvis part kan antage andre værdier end 0 og 1:

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;


  1. Bigquery:søg i flere tabeller og aggregér med først_set og sidst_set

  2. Sådan filtreres dropdown-listeværdier efter en anden dropdown-liste i ASP.NET, c#

  3. Udfør asynkron lagret procedure i sql-udvikler

  4. Sådan ringer du til Oracle-funktion eller -procedure ved hjælp af Hibernate (EntityManager) eller JPA