मान लें कि:
-
आप पोस्टग्रेज चला रहे हैं
-
किसी दिए गए ग्राहक की तालिका में हमेशा ठीक दो पंक्तियाँ होती हैं
-
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