I have a table with a timestamp field of type datetime. I need to aggregate the data between a defined start and end time into x groups representing time intervals of equal length, where x is supplied as function parameter.

What would be the best way to do this with Hibernate?

EDIT: some explanations

mysql Table:

```
data_ts: datetime pk
value1 : int
value2 : bigint
...

```

Entity class:

```
Calendar dataTs;
Integer value1;
BigDecimal value2;
...

```

I am looking for a HQL query that does something like

```
select max(c.value1), avg(c.value2) from MyClass c 
  where c.dataTs between :start and :end group by <interval>

```

where the whole time period is grouped into x equally sized time intervals.

Example: 

```
Start : 2008-10-01 00:00:00   
End   : 2008-10-03 00:00:00 (2 days)
Groups: 32

```

would need to be grouped by a time interval of 1.5 hours (48 hours / 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
...

```