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

दो तिथियों के बीच सप्ताह

विंडो फ़ंक्शन आपके मित्र हैं:

SELECT week_num,
       min(d) AS start_date,
       max(d) AS end_date
FROM (SELECT d,
             count(*) FILTER (WHERE new_week) OVER (ORDER BY d) AS week_num
      FROM (SELECT DATE '2018-09-05' + i AS d,
                   extract(dow FROM DATE '2018-09-05'
                                    + lag(i) OVER (ORDER BY i)
                          ) = 1 AS new_week
            FROM generate_series(0, DATE '2018-09-27' - DATE '2018-09-05') AS i
           ) AS week_days
     ) AS weeks
GROUP BY week_num
ORDER BY week_num;

 week_num | start_date |  end_date  
----------+------------+------------
        0 | 2018-09-05 | 2018-09-09
        1 | 2018-09-10 | 2018-09-16
        2 | 2018-09-17 | 2018-09-23
        3 | 2018-09-24 | 2018-09-27
(4 rows)


  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 9.x:`xpath_exists` (XMLEXISTS) प्रश्नों को अनुकूलित करने के लिए अनुक्रमणिका

  2. हेल्म में PostgreSQL:initdbScripts पैरामीटर

  3. प्रत्येक क्लाइंट के लिए सेपरेट पोस्टग्रेएसक्यूएल डीबी, सिंगल Django ऐप और एक ही सर्वर पर क्लाइंट बनाने पर स्वचालित माइग्रेशन के साथ

  4. कैसे Cosd () PostgreSQL में काम करता है

  5. Postgis में बहुभुज मानों के लिए एक तालिका बनाना और सम्मिलित करना