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

हाइव या पोस्टग्रेज में विभिन्न कार्यों को कब करना है, यह निर्धारित करने के लिए विंडो फ़ंक्शन का उपयोग कैसे करें?

Postgres में समाधान काफी आसान है, क्योंकि यह generate_series() . का समर्थन करता है . सबसे पहले, अपनी तालिका में प्रत्येक पंक्ति के लिए प्रतिदिन एक पंक्ति के लिए डेटा को एक्सप्लोर करें:

select d.*, gs.dy
from data d, lateral
     generate_series(start_day, end_day) gs(dy);

फिर, प्रत्येक दिन के लिए कार्य प्राप्त करने के लिए एकत्रित करें:

select d.person, d.dy, max(d.task_key) as task_key
from (select d.*, gs.dy
      from data d, lateral
           generate_series(start_day, end_day) gs(dy)
     ) d
group by d.person, d.dy;

फिर आप फिर से एकत्र कर सकते हैं, लेकिन यह मुश्किल है क्योंकि आप मूल पंक्तियों को "विभाजित" कर सकते हैं (मेरी टिप्पणी देखें)। यह आपके प्रश्न का उत्तर देता है कि किस दिन किस कार्य को करना है।

आप यह सब बिना लेटरल जॉइन किए या generate_series() . के बिना कर सकते हैं संख्या/ मिलान तालिका का उपयोग करके।




  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. Django में PostgreSQL डेटाबेस कैसे सेट करें?

  3. PostgreSQL:पूर्ण पाठ खोज - आंशिक शब्दों की खोज कैसे करें?

  4. django . के साथ कंडीशनल अपडेट_या_क्रिएट

  5. विंडोज 7 के तहत PostgreSQL pg_ctl रजिस्टर एरर