首先感谢
https://blog.youkuaiyun.com/qq_38230774/article/details/88870649和
https://blog.youkuaiyun.com/qq_38230774/article/details/88870649和
https://bbs.youkuaiyun.com/topics/392207536的资料
先说需求 查询每个月的数据量是多少
详细点:
查询某一段时间内的 每个月数据量
并按照 状态、月份分组
并按照 月份排序
直接上代码 业务:
QSafetyHiddenTrouble qSafetyHiddenTrouble = QSafetyHiddenTrouble.safetyHiddenTrouble;
//建立格式化模板
StringTemplate dataeExpr = Expressions.stringTemplate("DATE_FORMAT({0},'%Y-%m')",qSafetyHiddenTrouble.submissionTime);
List<SafetyHiddenTroubleStatusFetchCount> safetyHiddenTroubleStatusFetchCounts = jpaQueryFactory
.select(
Projections.bean(
SafetyHiddenTroubleStatusFetchCount.class,
dataeExpr.as("month"),
qSafetyHiddenTrouble.id.count().as("count"),
qSafetyHiddenTrouble.status
)//注意应该和SafetyHiddenTroubleStatusFetchCount最好名称一一对应(我没试取不一样的,因为我感觉应该是java反射需要比对属性名称所以最好取一样的)
)
.from(qSafetyHiddenTrouble)
.where(
qSafetyHiddenTrouble.submissionTime.between(from,to)
)
.groupBy(
dataeExpr,
qSafetyHiddenTrouble.status
)
.orderBy(
dataeExpr.desc()
)
.fetch();
然后就是我的SafetyHiddenTroubleStatusFetchCount的类了给你们看一下
@Data
public class SafetyHiddenTroubleStatusFetchCount {
private Long count;//数量
private String month;//月份
private Integer status;
}