按日期聚合postgresql行

时间:2011-04-07 11:00:17

标签: sql postgresql

我的记录包含以下值:date,hour,value。聚合一整天很容易,我只按日期分组。我的问题是我需要汇总整天的记录和特定的开始/结束时间。例如,当开始时间是上午9点,那么我有记录: - 从星期一上午9点​​到星期二上午8点(分为一个记录) - 从星期二上午9点到星期三上午8点(分为一个记录) 等等。 谢谢,任何想法。

2 个答案:

答案 0 :(得分:2)

我将假设你的小时字段是一个INT,但不管你应该能够适应这个......

GROUP BY
  CASE WHEN hour >= 9 THEN date ELSE date - 1 END

这主要是在上午9点之前的任何一小时将其视为前一天的一部分。

答案 1 :(得分:0)

GROUP BY date_trunc('day',date+(hour-9)*interval '1h')或类似的东西?