LambdaQueryWrapper 分组统计
时间: 2024-01-16 12:18:52 浏览: 256
LambdaQueryWrapper是MyBatis-Plus框架中的一个查询构造器,可以用于构建复杂的查询条件。它提供了一种简洁的方式来进行分组统计操作。
以下是使用LambdaQueryWrapper进行分组统计的示例:
```java
// 导入相关类
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper;
// 创建LambdaQueryWrapper对象
LambdaQueryWrapper<Entity> queryWrapper = Wrappers.lambdaQuery();
// 设置分组字段
queryWrapper.groupBy(Entity::getField);
// 设置聚合函数
queryWrapper.select(Entity::getField,
// sum聚合函数
sum(Entity::getSumField).as("sumField"),
// count聚合函数
count(Entity::getId).as("countField"));
// 执行查询
List<Map<String, Object>> result = entityMapper.selectMaps(queryWrapper);
// 输出结果
for (Map<String, Object> map : result) {
System.out.println("Field: " + map.get("field"));
System.out.println("SumField: " + map.get("sumField"));
System.out.println("CountField: " + map.get("countField"));
}
```
这个示例中,我们首先创建了一个LambdaQueryWrapper对象,并使用groupBy方法设置了分组字段。然后使用select方法设置了需要进行聚合的字段和相应的聚合函数。最后通过selectMaps方法执行查询,并将结果以List<Map<String, Object>>的形式返回。
阅读全文