mybatisplus 分组查询
时间: 2023-09-11 20:06:41 浏览: 233
Myatis Plus支持分组查询,可以通过groupBy方法来实现。分组查询是将数据按照指定的字段进行分类,然后对每个分类进行聚合操作,比如求和、计数等。使用MyBatis Plus的groupBy方法,可以在查询语句中添加GROUP BY子句,并指定需要分组的字段。
例如,如果我们有一个名为user的表,其中包含字段tel,我们想要对tel字段进行分组,并统计每个分组中的记录数量,可以使用如下代码:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("count(*) as count", "tel")
.groupBy("tel");
List<Map<String, Object>> resultList = userMapper.selectMaps(queryWrapper);
```
上述代码中,我们使用select方法选择需要查询的字段,这里选择了count(*)和tel字段,并起一个别名count。然后使用groupBy方法指定分组字段为tel。最后使用selectMaps方法执行查询,并将结果以Map的形式返回。
执行以上代码后,将返回一个包含每个分组的tel字段和对应记录数量的结果。
总结起来,MyBatis Plus的分组查询可以通过groupBy方法指定分组字段,并使用select方法选择需要查询的字段和聚合操作。
: MP的查询条件有很多: 范围匹配(> 、 = 、between)模糊匹配(like)空判定(null)包含性匹配(in)分组(group)排序(order)……
: groupBy为分组,最终的sql语句为 SELECT count(*) as count,tel FROM user GROUP BY tel
: groupBy分组,最终的sql语句为: SELECT count(*) as count,tel FROM user GROUP BY tel<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Mybatis-plus之查询](https://blog.csdn.net/m0_46492137/article/details/131274596)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [MyBatisPlus-聚合查询、分组查询及等值查询](https://blog.csdn.net/m0_61961937/article/details/125955560)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文