MybatisPlus结合groupby实现分组和sum求和的步骤

 更新时间:2023年12月11日 09:53:42   作者:知识浅谈  
这篇文章主要介绍了MybatisPlus结合groupby实现分组和sum求和的步骤,这次使用的是LambdaQueryWrapper,使用QueryWrapper相对来说简单点就不写了,本文分步骤给大家介绍的非常详细,感兴趣的朋友一起看看吧

✅MybatisPlus结合groupby实现分组和sum求和

这次使用的是LambdaQueryWrapper,使用QueryWrapper相对来说简单点就不写了

🎈实现GroupBy分组

第一步: 实体类中新增一个字段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;
}

第二步:查询接口中修改

   @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;
   }

返回的结果

[
  {
    "id": null,
    "name": null,
    "age": null,
    "state": "1",
    "count": 3
  },
  {
    "id": null,
    "name": null,
    "age": null,
    "state": "2",
    "count": 2
  }
]

🎈实现GroupBy分组之后再sum求和

第一步: 实体类中新增一个字段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;
	//这个地方
    @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<>();
       //这个地方新增了一个字段
       queryWrapper.select(User::getState,User::getCount,User::getAges);
       queryWrapper.groupBy(User::getState);
       List<User> list = userService.list(queryWrapper);
       return list;
   }

返回的结果

[
  {
    "id": null,
    "name": null,
    "age": null,
    "state": "1",
    "count": 3,
    "ages": 6
  },
  {
    "id": null,
    "name": null,
    "age": null,
    "state": "2",
    "count": 2,
    "ages": 9
  }
]

🍚总结

到此这篇关于MybatisPlus结合groupby实现分组和sum求和的文章就介绍到这了,更多相关MybatisPlus分组sum求和内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何写好一个Spring组件的实现步骤

    如何写好一个Spring组件的实现步骤

    这篇文章主要介绍了如何写好一个Spring组件的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 基于Springboot实现定时发送邮件功能

    基于Springboot实现定时发送邮件功能

    这篇文章主要为大家详细介绍了基于Springboot实现定时发送邮件功能的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • springboot读取配置文件中的参数具体步骤

    springboot读取配置文件中的参数具体步骤

    在本篇文章里小编给大家分享了关于springboot读取配置文件中的参数的相关知识点内容,有需要的朋友们跟着学习下。
    2019-06-06
  • Java Arrays.AsList原理及用法实例

    Java Arrays.AsList原理及用法实例

    这篇文章主要介绍了Java Arrays.AsList原理及用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Java之springcloud Sentinel案例讲解

    Java之springcloud Sentinel案例讲解

    这篇文章主要介绍了Java之springcloud Sentinel案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 新手小白看过来学JAVA必过IO流File字节流字符流

    新手小白看过来学JAVA必过IO流File字节流字符流

    这篇文章主要介绍了新手小白学JAVA到IO流File字节流字符流的重点,对流不清楚的新手同学快进来学习吧,大佬也可以进来温故一下
    2021-08-08
  • 解决因jdk版本引起的TypeNotPresentExceptionProxy异常

    解决因jdk版本引起的TypeNotPresentExceptionProxy异常

    这篇文章介绍了解决因jdk版本引起的TypeNotPresentExceptionProxy异常的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • 一篇文章带你解决 IDEA 每次新建项目 maven home directory 总是改变的问题

    一篇文章带你解决 IDEA 每次新建项目 maven home directory 总是改变的问题

    这篇文章主要介绍了一篇文章带你解决 IDEA 每次新建项目 maven home directory 总是改变的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 浅谈Java list.remove( )方法需要注意的两个坑

    浅谈Java list.remove( )方法需要注意的两个坑

    这篇文章主要介绍了浅谈Java list.remove( )方法需要注意的两个坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 史上最通俗理解的Java死锁代码演示

    史上最通俗理解的Java死锁代码演示

    这篇文章主要给大家介绍了关于Java死锁代码演示的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论