我有一个带有日期时间类型的时间戳字段的表。我需要将定义的开始时间和结束时间之间的数据聚合到代表等长时间间隔的 x 组中,其中 x 作为函数参数提供。
使用 Hibernate 执行此操作的最佳方法是什么?
编辑:一些解释
mysql表:
data_ts: datetime pk
value1 : int
value2 : bigint
...
实体类:
Calendar dataTs;
Integer value1;
BigDecimal value2;
...
我正在寻找执行类似操作的 HQL 查询
select max(c.value1), avg(c.value2) from MyClass c
where c.dataTs between :start and :end group by <interval>
其中整个时间段被分成 x 个大小相等的时间间隔。
例子:
Start : 2008-10-01 00:00:00
End : 2008-10-03 00:00:00 (2 days)
Groups: 32
需要按 1.5 小时(48 小时/32 小时)的时间间隔进行分组:
2008-10-01 00:00:00 - 2008-10-01 01:29:59
2008-10-01 01:30:00 - 2008-10-01 02:59:59
2008-10-01 02:00:00 - 2008-10-01 04:29:59
...