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

Postgresql के साथ निरंतर पंक्तियों को मिलाएं

इस समस्या को हल करने का एक तरीका यहां दिया गया है। एक फ़्लैग बनाएं जो यह निर्धारित करे कि कोई एक रिकॉर्ड नहीं करता है या नहीं पिछले एक के साथ ओवरलैप करें। यह एक समूह की शुरुआत है। फिर इस ध्वज का संचयी योग लें और उसे समूहबद्ध करने के लिए उपयोग करें:

select user_id, min(begin_at) as begin_at, max(end_at) as end_at
from (select s.*, sum(startflag) over (partition by user_id order by begin_at) as grp
      from (select s.*,
                   (case when lag(end_at) over (partition by user_id order by begin_at) >= begin_at
                         then 0 else 1
                    end) as startflag
            from slots s
           ) s
     ) s
group by user_id, grp;

यहां एक SQL Fiddle है।



  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. PostgreSQL कनेक्शन पूलिंग:भाग 4 - PgBouncer बनाम Pgpool-II

  3. एडब्ल्यूएस गोंद - सम्मिलित करने से पहले गंतव्य पोस्टग्रेज तालिका को छोटा करें

  4. एन्कोडिंग से जुड़ी डेटाबेस कनेक्शन त्रुटि

  5. बाधा के साथ Psql कॉपी विफल