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

ईवेंट प्रकार डेटा के आधार पर पंक्तियों को कैसे भरें

मान लें कि:

  • आप पोस्टग्रेज चला रहे हैं

  • किसी दिए गए ग्राहक की तालिका में हमेशा ठीक दो पंक्तियाँ होती हैं

  • hour दिनांक-समान डेटाटाइप का है

फिर एक विकल्प generate_series() . का उपयोग करना है लेटरल जॉइन के साथ, जैसे:

select t.customer_id, x.hour
from (
    select customer_id, min(hour) min_hour, max(hour) max_hour 
    from mytable 
    group by customer_id
) t
cross join lateral generate_series(min_hour, max_hour, '1 hour') x(hour)
order by t.customer_id, x.hour

डीबी फिडलडे पर डेमो :

customer_id | hour               
:---------- | :------------------
X           | 2019-04-01 13:00:00
X           | 2019-04-01 14:00:00
X           | 2019-04-01 15:00:00
X           | 2019-04-01 16:00:00
X           | 2019-04-01 17:00:00
Y           | 2019-04-01 17:00:00
Y           | 2019-04-01 18:00:00
Y           | 2019-04-01 19:00:00



  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:LEFT JOIN में AND स्टेटमेंट का उपयोग अपेक्षा के अनुरूप काम नहीं कर रहा है

  2. ट्रिगर फ़ंक्शन में पंक्ति प्रकार के डायनामिक कॉलम नाम तक पहुंचें

  3. पोस्टग्रेज SQL में डालें

  4. PostgreSQL:कैसे बच '?

  5. RPAD () PostgreSQL में फ़ंक्शन