mytbatisplus 分组统计
时间: 2023-08-21 11:05:03 浏览: 107
MyBatis-Plus 中可以使用 `group by` 和聚合函数实现分组统计。以下是一个示例 SQL,它使用 `group by` 和 `count` 函数对 `user` 表中的数据按照 `age` 字段进行分组,并计算每个年龄组中的用户数量:
```sql
SELECT age, COUNT(*) as user_count
FROM user
GROUP BY age;
```
在 MyBatis-Plus 中,您可以使用 `GroupBy` 类来构建此类查询。以下是一个示例代码,它使用 `GroupBy` 和 `count` 函数从 `User` 实体类中查询每个年龄组中的用户数量:
```java
List<Map<String, Object>> result = new LambdaQueryChainWrapper<>(userMapper)
.select(User::getAge, Functions.count())
.groupBy(User::getAge)
.listMaps();
```
在上面的代码中,我们使用 `LambdaQueryChainWrapper` 构造器,它允许我们使用 lambda 表达式来构建查询。我们调用 `select` 方法来选择要查询的字段,这里我们选择 `age` 字段和 `count` 函数。然后,我们调用 `groupBy` 方法来指定分组字段,这里我们将其设置为 `age`。最后,我们调用 `listMaps` 方法来执行查询,并将结果作为一个 `List<Map<String, Object>>` 返回。每个 Map 对象表示一个分组,其中键是分组字段的名称(在本例中是 `age`),值是聚合函数计算的结果(在本例中是用户数量)。
您可以根据需要更改查询中的字段和表名,以及使用其他聚合函数来计算分组结果。
阅读全文