实用编程技巧:MybatisPlus结合groupby实现分组和sum求和

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主
📌 擅长领域:全栈工程师、爬虫、ACM算法
💒 公众号:知识浅谈
🔥网站:vip.zsqt.cc

✅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}
]

🍚总结

大功告成,撒花致谢🎆🎇🌟,关注我不迷路,带你起飞带你富。
Writted By 知识浅谈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/209148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM 性能调优及监控诊断工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解

目录 一. 前言 二. jps&#xff08;Java Virtual Machine Process Status Tool&#xff09; 三. jstack 四. jmap&#xff08;Memory Map&#xff09;和 jhat&#xff08;Java Heap Analysis Tool&#xff09; 五. jstat&#xff08;JVM统计监测工具&#xff09; 六. hpro…

接口幂等性 token机制(防重令牌) 基于springboot2 redis实现 请提供示例代码

在基于Spring Boot 2和Redis实现防重令牌的幂等性控制时&#xff0c;你可以使用Redis存储令牌信息&#xff0c;并在接口请求时验证令牌的有效性。下面是一个简单的示例代码&#xff0c;演示了如何使用Spring Boot 2和Redis实现防重令牌的机制&#xff1a; import org.springfr…

EMC VNX Unified存储NAS控制台常见问题解答

每次遇到VNX unfied的case就是一坨屎&#xff0c;很多客户根本不理解什么是Unifed storage&#xff0c;EMC的Clariion中端存储系统还分Block和Unified的产品。这个blog就是简单介绍一下VNX Unified存储的管理控制台&#xff0c;英文是 control station, 简称为CS。 顾名思义&a…

苍穹影视V20七彩视界/免授权开源源码/热门影视APP源码带后台+带安装教程

源码简介&#xff1a; 苍穹影视V20七彩视界&#xff0c;它是免授权开源源码&#xff0c;作为影视APP源码&#xff0c;它带后台&#xff0c;也带安装教程。 苍穹影视 V20 全新后台七彩视界免受权开源源码此版本为天穹公益版开源无解密安装教程 全新后台很是都雅&#xff0c;源码…

pair的用法,详解

1.pair是什么 pair名为二元组&#xff0c;顾名思义&#xff0c;就是储存二元组的。 2.pair的初始化 pair<第一个值类型, 第二个值类型> pr 第一个值类型&#xff1a;要储存的第一个值的数据类型第二个值类型&#xff1a;要储存的第二个值的数据类型pair<int, int&g…

伦茨科技宣布ST17H6x芯片已通过Apple Find My「查找」认证

深圳市伦茨科技有限公司&#xff08;以下简称“伦茨科技”&#xff09;发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家&#xff0c;该平台提供可通过Apple Find My认证的Apple查找&#xff08;Find My&#xff09;功能集成解决方案。…

【图像拼接】论文精读:Deep Rectangling for Image Stitching: A Learning Baseline

第一次来请先看这篇文章:【图像拼接(Image Stitching)】关于【图像拼接论文精读】专栏的相关说明,包含专栏使用说明、创新思路分享等(不定期更新) 图像拼接系列相关论文精读 Seam Carving for Content-Aware Image ResizingAs-Rigid-As-Possible Shape ManipulationAdap…

年底不同外贸客户催单模板分享

最近工厂又爆单了&#xff0c;有些小的订单都没时间管了。时间过得很快&#xff0c;眼看就剩一个多月就春节&#xff0c;大家可以抓住这段时间催一下还有机会成单的客户&#xff0c;好为来年做准备&#xff01; 1.老客户模板 Dear xxx, Greetings. Do you have any new inqu…

FIR IP 学习记录

工具&#xff1a; matlab filterdesigner 工具箱 vivado FIR IP核 实现&#xff1a; 1.matlab设计与测试 先用matlab设计目标滤波器&#xff0c;得到滤波器的抽头系数。 如图&#xff0c;根据需求选择 低通/高通/带通/带阻。 由于vivado用的是FIR IP核&#xff0c;所以设…

苹果手机video标签播放视频问题(播放mp4视频遇到的坑)

1.场景描述 服务端上传MP4视频文件&#xff0c;iOS客户端通过URL播放该视频文件。提供视频接口&#xff0c;可以进行视频下载或者直接播放&#xff0c;但是iOS手机无法播放&#xff0c;且PC端safari浏览器也无法播放。 2.问题描述 安卓手机可以正常播放视频&#xff0c;iOS手机…

什么是HTML?

✨前言✨ 本文主要介绍什么是HTML以及W3C &#x1f352;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f352;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 文章目录 什么是HTMLHTML发展史HTML的特点什么…

Linux权限理解(1)

目录 1.shell命令以及运行原理 2.Linux权限的概念 Linux权限管理 01.文件访问者的分类&#xff08;人&#xff09; 02.文件类型和访问权限&#xff08;事物属性&#xff09; a) 文件类型 b)基本权限 03.文件权限值的表示方法 04.文件访问权限的相关设置方法 a)chmod …

「JavaScript每日一练」系列——提高你的JS技能(第一天)

以后我会陆续发布关于JavaScript知识点以及案例面试题 文章目录 文章目录 题目 一、详细讲解 二、代码 1.引入库 总结 题目 输入一个数字&#xff0c;判断是不是水仙花数自恋数&#xff08;自幂数 各位的3次方十位的三次方百位的三次方等于153&#xff09; ----输出true或fals…

软件合集(项目开发中会用到的软件)

jeecg&#xff08;JeecgBoot 文档中心&#xff09; JeecgBoot是一款基于BPM的低代码平台&#xff01;前后端分离架构 SpringBoot 2.x&#xff0c;SpringCloud&#xff0c;Ant Design&Vue&#xff0c;Mybatis-plus&#xff0c;Shiro&#xff0c;JWT&#xff0c;支持微服务。…

FPGA设计时序分析概念之Timing Arc

目录 1.1 Timing Arc概念 1.2 Timing Arcs的类型 1.3 Timing Sense(时序感知) 1.4 参考资料 1.1 Timing Arc概念 在时序工具对设计进行时序分析时&#xff0c;经常会看到一个概念Timing Arch(时序弧)。Timing Arc是一个信号一个单元Cell的输入引脚Pin到该单元输出引脚Outpu…

python epub文件解析

python epub文件解析 代码BeautifulSoup 介绍解释 代码 import ebooklib from bs4 import BeautifulSoup from ebooklib import epubbook epub.read_epub("逻辑思维训练1200题.epub")# 解析 for item in book.get_items():# 提取书中的文本内容if item.get_type() …

Redis主从架构中从节点的master_link_status:down

项目场景&#xff1a; 在搭建Redis的主从架构时&#xff0c;查看Redis的从节点状态时发现其连接的主节点的状态为down&#xff0c;并且查看主节点的状态时发现连接的从节点数量为0。 问题描述 原因分析&#xff1a; 可能在主节点中配置了密码&#xff0c;即requirepass。 解决…

算法:常见的链表算法

文章目录 链表算法两数相加两两交换链表中的节点重排链表合并K个升序链表K个一组翻转链表 总结 本篇总结常见的链表算法题和看他人题解所得到的一些收获 链表算法 关于链表的算法&#xff1a; 画图&#xff1a;画图可以解决绝大部分的数据结构的问题&#xff0c;任何的算法题…

视觉学习笔记12——百度飞浆框架的PaddleOCR 安装、标注、训练以及测试

系列文章目录 虚拟环境部署 参考博客1 参考博客2 参考博客3 参考博客4 文章目录 系列文章目录一、简单介绍1.OCR介绍2.PaddleOCR介绍 二、安装1.anaconda基础环境1&#xff09;anaconda的基本操作2&#xff09;搭建飞浆的基础环境 2.安装paddlepaddle-gpu版本1&#xff09;安装…

语言模型GPT与HuggingFace应用

受到计算机视觉领域采用ImageNet对模型进行一次预训练&#xff0c;使得模型可以通过海量图像充分学习如何提取特征&#xff0c;然后再根据任务目标进行模型微调的范式影响&#xff0c;自然语言处理领域基于预训练语言模型的方法也逐渐成为主流。以ELMo为代表的动态词向量模型开…