我有一個postgresql 9.1表,其中包含開始和結束時間戳,記錄用戶標識可能重疊的時間段。例如:如何計算postgresql中多個記錄的開始和結束時間戳之間的總時間
Userid Begin End
1 2014-01-19 21:14:59+00 2014-01-19 21:30:00+00
2 2014-01-19 21:19:29+00 2014-01-19 21:40:30+00
1 2014-01-19 21:16:29+00 2014-01-19 21:31:30+00
3 2014-01-19 21:15:22+00 2014-01-19 21:30:29+00
2 2014-01-19 21:29:59+00 2014-01-19 21:45:00+00
3 2014-01-19 21:15:25+00 2014-01-19 21:35:10+00
4 2014-01-19 22:00:01+00 2014-01-19 22:05:20+00
我需要得到每個用戶ID的所有分的總和在這些行確保時間不被重複計算的個人用戶標識,從而使輸出將是:
Userid Hour Total Minutes
1 21 n
2 21 n
3 21 n
4 22 n
使用'tzrange'的'+'(範圍聯合)運算符對此會很有趣。很遺憾,它不支持不連續性;這讓我停止玩它變得更加困難。 –