MybatisPlus結(jié)合groupby實(shí)現(xiàn)分組和sum求和的步驟
?MybatisPlus結(jié)合groupby實(shí)現(xiàn)分組和sum求和
這次使用的是LambdaQueryWrapper,使用QueryWrapper相對(duì)來(lái)說(shuō)簡(jiǎn)單點(diǎn)就不寫(xiě)了
??實(shí)現(xiàn)GroupBy分組
第一步: 實(shí)體類中新增一個(gè)字段count
@TableName(value ="user")
@Data
public class User implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
@TableField(value = "name")
private String name;
@TableField(value = "age")
private Integer age;
@TableField(value = "state")
private String state;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
//這個(gè)地方
@TableField(value = "count(*)",insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER)
private Integer count;
}第二步:查詢接口中修改
@GetMapping("/count")
public List<User> count(){
new QueryWrapper<>()
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(User::getState,User::getCount);
queryWrapper.groupBy(User::getState);
List<User> list = userService.list(queryWrapper);
return list;
}返回的結(jié)果
[
{
"id": null,
"name": null,
"age": null,
"state": "1",
"count": 3
},
{
"id": null,
"name": null,
"age": null,
"state": "2",
"count": 2
}
]
??實(shí)現(xiàn)GroupBy分組之后再sum求和
第一步: 實(shí)體類中新增一個(gè)字段count
@TableName(value ="user")
@Data
public class User implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
@TableField(value = "name")
private String name;
@TableField(value = "age")
private Integer age;
@TableField(value = "state")
private String state;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
@TableField(value = "count(*)",insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER)
private Integer count;
//這個(gè)地方
@TableField(value = "sum(age)",insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER)
private Integer ages;
}第二步:查詢接口中修改
@GetMapping("/count")
public List<User> count(){
new QueryWrapper<>()
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
//這個(gè)地方新增了一個(gè)字段
queryWrapper.select(User::getState,User::getCount,User::getAges);
queryWrapper.groupBy(User::getState);
List<User> list = userService.list(queryWrapper);
return list;
}返回的結(jié)果
[
{
"id": null,
"name": null,
"age": null,
"state": "1",
"count": 3,
"ages": 6
},
{
"id": null,
"name": null,
"age": null,
"state": "2",
"count": 2,
"ages": 9
}
]
??總結(jié)
到此這篇關(guān)于MybatisPlus結(jié)合groupby實(shí)現(xiàn)分組和sum求和的文章就介紹到這了,更多相關(guān)MybatisPlus分組sum求和內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何寫(xiě)好一個(gè)Spring組件的實(shí)現(xiàn)步驟
這篇文章主要介紹了如何寫(xiě)好一個(gè)Spring組件的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
基于Springboot實(shí)現(xiàn)定時(shí)發(fā)送郵件功能
這篇文章主要為大家詳細(xì)介紹了基于Springboot實(shí)現(xiàn)定時(shí)發(fā)送郵件功能的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
Java Arrays.AsList原理及用法實(shí)例
這篇文章主要介紹了Java Arrays.AsList原理及用法實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
新手小白看過(guò)來(lái)學(xué)JAVA必過(guò)IO流File字節(jié)流字符流
這篇文章主要介紹了新手小白學(xué)JAVA到IO流File字節(jié)流字符流的重點(diǎn),對(duì)流不清楚的新手同學(xué)快進(jìn)來(lái)學(xué)習(xí)吧,大佬也可以進(jìn)來(lái)溫故一下2021-08-08
解決因jdk版本引起的TypeNotPresentExceptionProxy異常
這篇文章介紹了解決因jdk版本引起的TypeNotPresentExceptionProxy異常的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
一篇文章帶你解決 IDEA 每次新建項(xiàng)目 maven home directory 總是改變的問(wèn)題
這篇文章主要介紹了一篇文章帶你解決 IDEA 每次新建項(xiàng)目 maven home directory 總是改變的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
淺談Java list.remove( )方法需要注意的兩個(gè)坑
這篇文章主要介紹了淺談Java list.remove( )方法需要注意的兩個(gè)坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12

