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

PostgreSQL last_value नल पर ध्यान न दें

आप जो चाहते हैं वह है lag(ignore nulls) . दो विंडो फ़ंक्शंस का उपयोग करके आप जो चाहते हैं उसे करने का एक तरीका यहां दिया गया है। पहला समूह को NULL . के लिए परिभाषित करता है मान और दूसरा मान निर्दिष्ट करता है:

select idx, value, coalesce(value, max(value) over (partition by grp))
from (select b.*, count(value) over (order by idx) as grp
      from base b
     ) b
order by idx;

आप इसे सरणियों का उपयोग करके बिना सबक्वेरी के भी कर सकते हैं। मूल रूप से, अंतिम तत्व को न गिनें NULL रों:

select idx, value, 
       (array_remove(array_agg(value) over (order by idx), null))[count(value) over (order by idx)]
from base b
order by idx;

यहां एक डीबी<>बेला है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. OmniDB के साथ PostgreSQL 12 के प्रदर्शन की निगरानी कैसे करें - भाग 1

  2. Postgresql में शून्य मानों की गणना कैसे करें?

  3. माउंटेन लायन पर पीजी रत्न स्थापित नहीं किया जा सकता

  4. PostgreSQL 11 . में PL/Java 1.5.2 स्थापित करें

  5. पोस्टग्रेज में लॉक रखने वाली क्वेरी का पता कैसे लगाएं?