我有一个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'的'+'(范围联合)运算符对此会很有趣。很遗憾,它不支持不连续性;这让我停止玩它变得更加困难。 –