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

PostgreSQL:अंतराल '10 दिन' और वर्तमान पंक्ति के बीच की सीमा

आप प्रत्येक आइटम के लिए पिछले 10 दिनों के भीतर नवीनतम रिकॉर्ड निकालने के लिए ROW_NUMBER() का उपयोग कर सकते हैं:

SELECT * 
FROM (
    SELECT
        DATE(datetime),
        item_id,
        price AS most_recent_price_within_last_10days,
        ROW_NUMBER() OVER(PARTITION BY item_id ORDER BY datetime DESC) rn
    FROM ...
    WHERE datetime > NOW() - INTERVAL '10 DAY'
) x WHERE rn = 1

सबक्वेरी में, WHERE क्लॉज दिनांक सीमा पर फ़िल्टरिंग करता है; ROW_NUMBER() समान आइटम_आईडी वाले रिकॉर्ड के समूहों के भीतर प्रत्येक रिकॉर्ड को एक रैंक प्रदान करता है, जिसमें सबसे हाल का रिकॉर्ड पहले होता है। फिर, बाहरी क्वेरी केवल पंक्ति संख्या 1 वाले रिकॉर्ड में फ़िल्टर करती है।



  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. MyBatis <insert> मैप किए गए तरीकों से मान लौटाना

  3. PostgreSQL को PostGIS के साथ अपग्रेड कैसे करें?

  4. Pl/pgsql फ़ंक्शन में कॉपी स्टेटमेंट के साथ डायग्नोस्टिक प्राप्त करें

  5. सबक्वेरी खराब प्रदर्शन के साथ PostgreSQL IN ऑपरेटर