所以我查询的参数只是日期范围。
示例参数为
startDateTime = '2018-01-10 00:00:00'
endDateTime = '2018-01-11 00:00:00'
根据日期范围,我喜欢按时间范围对计数和金额进行分组, 0
- 23
应该是小时的值。
下面是我的代码。
dc.add(Restrictions.ge("date", startDateTime));
dc.add(Restrictions.lt("date", endDateTime));
dc.setProjection(
Projections.projectionList()
.add(Projections.alias(Projections.sum("amount"), "amount"))
.add(
Projections.sqlProjection(
"Cast(Count(id) as Integer) count",
new String[]{"count"},
new Type[]{StandardBasicTypes.INTEGER})
)
.add(
Projections.sqlProjection(
"hour(date) as date",
new String[]{"date"},
new Type[]{StandardBasicTypes.INTEGER})
)
);
结果就是这样。
[
{
"amount": 0.1,
"count": 1,
"date": 3
},
{
"amount": 0.3,
"count": 1,
"date": 3
},
{
"amount": 1.5,
"count": 1,
"date": 11
},
{
"amount": 2.2,
"count": 1,
"date": 11
},
{
"amount": 0.6,
"count": 1,
"date": 11
}
]
你知道怎么做吗?
1条答案
按热度按时间rekjcdws1#
你需要加上
groupProperty
. 我不确定参数