PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để liệt kê các nhóm phân vùng trong bảng Postgres của tôi với các hàm cửa sổ?

Bạn dường như muốn một cái gì đó giống như 1 hơn tổng tích lũy của các phần. Phương pháp đơn giản nhất là:

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

Nếu part có thể nhận các giá trị khác 0 và 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. Giới hạn hiệu suất của các giải pháp sao chép hợp lý

  2. Gán tổng giá trị của tháng cho từng ngày trong tháng

  3. Phương thức xác thực PostgreSQL 10 không được hỗ trợ

  4. PostgreSQL:Tại sao psql không thể kết nối với máy chủ?

  5. THAM GIA LEFT OUTER trên cột mảng có nhiều giá trị