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

शर्त के आधार पर पंक्तियाँ प्राप्त करें

इसके दो कारण हैं कि row y इस शर्त के कारण वापस नहीं किया गया है:

  • b.start > a.start इसका मतलब है कि एक पंक्ति कभी भी अपने आप में शामिल नहीं होगी
  • ग्रुप BY प्रति APP_nm में केवल एक रिकॉर्ड लौटाएगा मान, फिर भी सभी पंक्तियों का मान समान होता है।

हालाँकि, क्वेरी में और तर्क त्रुटियाँ हैं जो सफलतापूर्वक संभाल नहीं पाएंगी। उदाहरण के लिए, यह कैसे पता चलता है कि "नया" सत्र कब शुरू होता है?

आपके द्वारा चाहा गया तर्क सामान्य PostgreSQL में DISTINCT ON . की सहायता से प्राप्त किया जा सकता है फ़ंक्शन, जो एक विशिष्ट कॉलम में प्रति इनपुट मान एक पंक्ति दिखाता है। हालांकि, DISTINCT ON Redshift द्वारा समर्थित नहीं है।

कुछ संभावित समाधान:DISTINCT ON लाइक फंक्शनलिटी फॉर रेडशिफ्ट

आप जो आउटपुट चाहते हैं वह प्रोग्रामिंग भाषा (जो परिणामों के माध्यम से लूप कर सकता है और चर को स्टोर कर सकता है) का उपयोग करके छोटा होगा लेकिन SQL क्वेरी पर लागू करना मुश्किल है (जिसे परिणामों की पंक्तियों पर संचालित करने के लिए डिज़ाइन किया गया है)। मैं डेटा निकालने और इसे एक साधारण स्क्रिप्ट (उदाहरण के लिए पायथन में) के माध्यम से चलाने की अनुशंसा करता हूं जो तब आपके द्वारा खोजे गए प्रारंभ और समाप्ति संयोजनों को आउटपुट कर सकता है।

यह Hadoop स्ट्रीमिंग फ़ंक्शन<के लिए एक उत्कृष्ट उपयोग-मामला है। /ए> , जिसे मैंने अतीत में सफलतापूर्वक लागू किया है। यह रिकॉर्ड को इनपुट के रूप में लेगा, फिर प्रारंभ समय को 'याद रखें' और वांछित अंत-तर्क पूरा होने पर ही एक रिकॉर्ड आउटपुट करेगा।



  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. PostgreSQL:कार्रवाई में क्वेरी समानांतरवाद

  3. PostgreSQL फ़ंक्शन में पंक्ति प्रकार की सरणी कैसे घोषित करें?

  4. Django और PostgreSQL को दो अलग-अलग EC2 उदाहरणों पर सेट करना

  5. पोस्टग्रेज़ सबक्वेरी परिणामों को कोष्ठक में लपेटता है