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

द्वीपों में टाइमस्टैम्प कैसे समूहित करें (मनमाने ढंग से अंतर के आधार पर)?

यह यह करेगा:

SELECT done, count(*) FILTER (WHERE step) OVER (ORDER BY done) AS grp
FROM  (
   SELECT done
       , (lag(done) OVER (ORDER BY done) <= done - interval '2 min') AS step
   FROM   tbl
   ) sub
ORDER  BY done;

सबक्वेरी sub रिकॉर्ड step true . के रूप में यदि पिछली पंक्ति कम से कम 2 मिनट की दूरी पर है - टाइमस्टैम्प कॉलम द्वारा क्रमबद्ध done इस मामले में ही।

बाहरी क्वेरी चरणों की एक रोलिंग गिनती जोड़ती है, प्रभावी रूप से समूह संख्या (grp .) ) - कुल मिलाकर FILTER किसी अन्य विंडो फ़ंक्शन के साथ क्लॉज।

db<>यहां बेला करें

संबंधित:

  • एक निश्चित अंतराल से अधिक सभी टाइमस्टैम्प को अलग खोजने की क्वेरी
  • पोस्टग्रेस्क्ल में समूहों को कैसे लेबल करें जब संबंधित समूह पिछली पंक्ति पर निर्भर करता है?
  • सबसे लंबे निरंतर अनुक्रम का चयन करें
  • ग्रुपिंग या विंडो

कुल के बारे में FILTER खंड:

  • मैं इस गेम सांख्यिकी क्वेरी को कैसे सरल बना सकता हूं?
  • सशर्त लीड/लैग फ़ंक्शन PostgreSQL?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. psycopg का उपयोग करके डालने के लिए समस्या

  2. ड्रॉप कॉलम कॉलम संदर्भों को पूरी तरह से नहीं हटाता है - postgresql

  3. कमांड लाइन तर्कों का उपयोग करके PostgreSQL .sql फ़ाइल चलाएँ

  4. Django को Heroku पर तैनात करना (Psycopg2 त्रुटि)

  5. Pgbackrest डेल्टा को पुनर्स्थापित करें और पुनर्स्थापित करें