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

Các chức năng của cửa sổ PostgreSQL Bỏ qua Giá trị Null

Tôi cho rằng bạn không thể chỉ:

select
from tbl_x
window w as (partition by ID order by Date)
where col_a is null;

Nếu không thì bạn có thể phải:

select
Col_A,
Col_B,
case when Col_A is null
  then (select col_a
          from tbl_x x2
         where x2.id = x1.id
           and col_a is not null
           and x2.date < x1.date
      order by date desc
         limit 1)
  else Col_A
  end Col_A_Lag,
case when Col_B is null
  then (select col_b
          from tbl_x x2
         where x2.id = x1.id
           and col_b is not null
           and x2.date < x1.date
      order by date desc
         limit 1)
  else Col_B
  end Col_B_Lag
from tbl_x x1;

Với việc lập chỉ mục thích hợp, hiệu suất có thể sẽ khá tốt.

create index ... (id, date desc, col_b) where col_b is not null;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cả percentile_cont và percentile_disc đều không tính toán phân vị thứ 75 mong muốn trong PostgreSQL 9.6.3

  2. Có PHP mysql_real_escape_string cho postgresql không?

  3. Cách chèn dữ liệu CSV vào cơ sở dữ liệu PostgreSQL (cơ sở dữ liệu từ xa)

  4. Làm thế nào để nâng cấp PostgreSQL từ phiên bản 9.6 lên phiên bản 10.1 mà không làm mất dữ liệu?

  5. Generate_series in Postgres từ ngày bắt đầu và ngày kết thúc trong một bảng