Hibernate HQL查询或条件,以获取执行的平均事务数

Hibernate HQL查询或条件,以获取执行的平均事务数,hibernate,aggregate-functions,Hibernate,Aggregate Functions,我正在尝试获取HQL查询或条件,以获取给定日期范围和资源的特定日期执行的平均事务数 表user\u transactions包含以下字段(以及相应的域类UserTransaction) 事务id、用户id、资源、转换日期 现在我正在做: UserTransaction.createCriteria().list { between('transdate', fromDate, toDate) projections {

我正在尝试获取HQL查询或条件,以获取给定日期范围和资源的特定日期执行的平均事务数

表user\u transactions包含以下字段(以及相应的域类UserTransaction) 事务id、用户id、资源、转换日期

现在我正在做:

UserTransaction.createCriteria().list {   
                between('transdate', fromDate, toDate)
                projections {  
                  avg('transaction_id')  
                  groupProperty('graresource')
                  groupProperty('transdate')
                 }
               }
上述方法正确吗?如果不是,查询应该是怎样的,以便我得到所有用户在某个日期为资源执行的平均事务数


提前感谢

现在我通过这个查询得到了太多的结果。transdate是日期还是时间戳?这里生成和执行的SQL是什么?“获得太多结果”会向我表明限制(where条款)的问题;这就是你的意思吗?您返回的行超出了日期范围?transdate是一个日期字段,例如,我有一个月范围内的所有日期的Activy,并且有4个资源,然后我需要每个资源每天的aveg事务编号-因此总共有120条arnd max记录,但现在我想起来,我有数千条,它与日期和时间一起分组,我如何在hibernate标准中指定不在分组中包含时间,就像一个格式说明符一样?在Oracle sql developer中有点奇怪,transdate是一个没有时间的日期字段。我将字段改为timestamp,现在我看到每个日期值都有一个有效的非零时间,就像它一直存在并且只是隐藏它一样。不确定这意味着什么,但我认为分组考虑了时间,因为事务id的平均值总是1。是的,Oracle中的数据类型DATE都是DATE+time