mybatisplus 分组查询并统计
时间: 2023-07-18 21:41:31 浏览: 165
MybatisPlus提供了基于Wrapper对象的分组查询并统计的功能。可以使用Wrapper对象的groupBy()方法指定分组的字段,再使用select()方法指定需要统计的字段。
例如,我们有一个订单表(order),其中包含字段id、user_id、product_id、price、order_time等。我们需要统计不同用户的订单数量和订单总金额,可以使用如下代码:
```
QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
queryWrapper.select("user_id", "count(*) as order_count", "sum(price) as total_amount")
.groupBy("user_id");
List<Map<String, Object>> result = orderMapper.selectMaps(queryWrapper);
```
以上代码使用select()方法指定需要查询的字段,其中count(*) as order_count表示统计订单数量并将结果命名为order_count,sum(price) as total_amount表示统计订单总金额并将结果命名为total_amount,groupBy("user_id")表示按照user_id字段进行分组。
最终查询结果为一个List<Map<String, Object>>,每个Map对象对应一个分组结果,其中包含user_id、order_count、total_amount三个字段。
阅读全文