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

केवल उन पंक्तियों का चयन करें जिनमें एक अद्वितीय आईडी दी गई है, इससे पहले की पंक्तियों से एक कॉलम बदल गया है

यह एक अंतराल और द्वीप समस्या है। आप प्रत्येक द्वीप की शुरुआत चाहते हैं, जिसे आप "पिछला" रिकॉर्ड की स्थिति से वर्तमान पंक्ति की स्थिति की तुलना करके पहचान सकते हैं।

इसके लिए विंडो फंक्शन काम आते हैं:

select t.*
from (
    select t.*, lag(status) over(partition by personID order by unixtime) lag_status
    from mytable t
) t
where lag_status is null or status <> lag_status



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दो स्तंभों के संयोजन पर अद्वितीय बाधा?

  2. WHERE क्लॉज में एक कॉलम नाम उपनाम का संदर्भ लें

  3. Npgsql 4.0 पैरामीटर और शून्य मान

  4. कब डिस्कनेक्ट करना है और कब पीजी क्लाइंट या पूल को समाप्त करना है

  5. GORM और Postgresql का उपयोग करते समय गो में डेटाबेस में समय कैसे बचाएं?