PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL विंडो फ़ंक्शंस शून्य मानों पर ध्यान न दें

मुझे लगता है कि आप बस नहीं कर सकते:

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

यदि नहीं तो आपको यह करना पड़ सकता है:

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;

उचित अनुक्रमण के साथ प्रदर्शन शायद बहुत अच्छा होगा।

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. PostgreSQL - अद्यतन विफल होने पर पंक्ति सामग्री लौटाएं

  2. क्या एकाधिक धागे बाध्य सेट पर डुप्लिकेट अपडेट का कारण बन सकते हैं?

  3. सीएसवी से तालिका में आईडी सीरियल कॉलम ऑटो-इन्क्रीमेंटिंग पीएसक्यूएल के साथ कॉपी करें

  4. Map_partitions और pd.df.to_sql . का उपयोग करके dask डेटाफ़्रेम से sql तालिका बनाएं

  5. Daper.Net और NPGSQL के साथ PostgreSQL jsonb कॉलम में डेटा डालना