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

पोस्टग्रेज:प्रति डेवलपर सबसे लंबी स्ट्रीक (दिनों में) को परिभाषित करना

ऐसा करने की एक तरकीब है। यदि आप तिथियों में से संख्याओं के बढ़ते क्रम को घटाते हैं, तो वे क्रमिक तिथियों के लिए स्थिर रहेंगे। इसके बाद हम प्रत्येक डेवलपर के लिए समूहों को परिभाषित करने के लिए इसका उपयोग कर सकते हैं।

select developer, max(numdays) as maxseq
from (select developer, grp, min(MRDate) as MR_start, max(MRDate) as MR_end,
             count(distinct MRDate) as numdays
      from (select t.*,
                  (MRDate - dense_rank() over (partition by developer order by date)) as grp
            from t
           ) t
      group by developer, grp
     ) t
group by developer;

यदि आप जानते हैं कि प्रति दिनांक अधिकतम एक रिकॉर्ड है, तो आप row_number() . का उपयोग कर सकते हैं इसके बजाय dense_rank() और count(*) count(distinct MRDate) . के बजाय ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. IN मूल्य सूची द्वारा ऑर्डर करें

  2. PostgreSQL त्रुटि:क्लाइंट से डेटा प्राप्त नहीं कर सका:किसी ऐसी चीज़ पर एक ऑपरेशन का प्रयास किया गया जो सॉकेट नहीं है

  3. वर्चर फ़ील्ड के प्रकार को पूर्णांक में बदलें:पूर्णांक टाइप करने के लिए स्वचालित रूप से कास्ट नहीं किया जा सकता

  4. कॉन्फ़िगरेशन पैरामीटर कैसे निकालें

  5. हाइबरनेट + पोस्टग्रेएसक्यूएल + नेटवर्क एड्रेस टाइप (इनेट, सीडीआईआर)