项目需求为统计每个月全部用户的一些数据,采用了QueryWrapper聚合函数实现,代码如下:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
if(!StringUtils.isEmpty(dateIntervalAna)){
queryWrapper.select("date_format(loginDate, '%Y-%m') as dateInterval", "sum(loginTimes) as amount",y)
.groupBy("dateInterval");
}//此处loginDate为自己数据库的时间字段,%Y-%m'为以月为间隔,dateInterval为自定,sum(loginTimes)为对每个阶段求和,amount为自定
Map<Object, Double> cMap = new TreeMap<Object, Double>();//以下根据自己项目需求
List<Map<String, Object>> list = userService.listMaps(queryWrapper);//通过上面条件查询数据库
//System.out.println(list);//不做更改输出就如下图
for( int i = 0 ; i < list.size() ; i++) {//这里我是分别取出放进另一个集合发给前端
cMap.put(list.get(i).get("dateInterval"), Double.valueOf(list.get(i).get("amount").toString()));
}