PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да изброя групи от дялове в моята таблица на Postgres с прозоречни функции?

Изглежда искаш нещо като 1 повече от кумулативния сбор на частите. Най-простият метод е:

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

Ако part може да приема стойности, различни от 0 и 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да направя актуализация + присъединяване в PostgreSQL?

  2. Как да включите липсващи данни за множество групи в рамките на времевия период?

  3. Rails 3, Heroku:Докосва грешка на сървъра:PGError:ГРЕШКА:невалидна последователност от байтове за кодиране UTF8:0xba

  4. Преобразуване на SQL команди в ORM на Python

  5. Не може да се изпусне временна таблица във функцията на Postgres:използва се от активни заявки в тази сесия