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

समय के साथ खुले टिकटों की संख्या उत्पन्न करना, खुली और बंद तारीखों को देखते हुए

आप उपयोग कर सकते हैं generate_series() तिथियों की सूची बनाने के लिए, और फिर एक left join तालिका लाने के लिए असमानता की स्थिति पर:

select s.dt, count(t.opened_on) num_open
from generate_series(date '2019-09-01', date '2020-09-01', '1 day') s(dt)
left join mytable t
    on s.dt >= t.opened_on and s.dt < coalesce(t.closed_on, 'infinity')
group by s.dt

वास्तव में, यह आप जो चाहते हैं उसके थोड़ा करीब लगता है:

select s.dt, count(t.opened_on) num_open
from generate_series(date '2019-09-01', date '2020-09-01', '1 day') s(dt)
left join mytable t
    on s.dt >= t.opened_on::date and s.dt < coalesce(t.closed_on::date, 'infinity')
group by s.dt



  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 12 . के लिए डेटाबेस प्रबंधन और निगरानी

  2. JSON API से विशिष्ट मानों को लक्षित करना और Python का उपयोग करके Postgresql में सम्मिलित करना

  3. बाहरी हार्ड ड्राइव पर डेटाबेस सहेजें

  4. PostgreSQL में सबस्ट्रिंग पर पूर्ण पाठ खोज

  5. रेल। जहां () क्वेरी काम नहीं कर रही है