MYSQL GROUP BY用法详解
作者:Landpack 时间:2024-01-29 10:22:05
背景介绍
最近在设计数据库的时候因为开始考虑不周,所以产生了大量的重复数据。现在需要把这些重复的数据删除掉,使用到的语句就是Group By来完成。为了进一步了解这条语句的作用,我打算先从简单入手。
建一个测试表
create table test_group(id int auto_increment primary key, name varchar(32), class varchar(32), score int);
查看表结构
desc test_group
插入数据
测试开始
我想知道当前每一个班级里面最高分数的同学是谁。
select name, class , max(score) from test_group group by class;
好现在可以插入几条重复的数据。
insert into test_group(name, class, score)values('repeat','B',89);
现在要过滤掉重复的数据,保留最新的那条记录。一般我们假设最新的记录是最后插入的那条,所以它的ID应该是最大的那条。
select name, class, max(id) from test_group group by name;
可以发现,我们关注那个项的重复性就把它放到gourp by后面。这样我们就可以过滤掉那些与这个项重复的记录啦。现在我们得到了我们需要的数据,我们下一步就是把那些重复的数据删除。为了区分我们过滤出来的数据记录与原有的记录,我们可以给id取一个别名。
select name, class, max(id) as max_id from test_group group by name;
下一步就是把这些关心的数据保留下来,我先把这些数据的id
提取出来。因为这个是唯一确定一条记录的。
select max_id from (select name, class, max(id) as max_id from test_group group by name)b;
下面就是删除操作了。思路就是删除那些数据ID不在我们查询结果里面的记录。为了方便操作后对数据的对比,我先进行一次全部查询。
select * from test_group;
执行删除操作。
delete from test_group where id not in (select max_id from (select name, class, max(id) as max_id from test_group group by name)b);
最后查看结果。
总结
MySQL操作还是很灵活的,之前一直喜欢用ORM现在感觉直接使用MYSQL省去了很多事。如果你有更好更高效的方式就请你分享分享吧~~
标签:mysql,group,by
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
快速解决cv2.imread()读取图像为BGR的问题
2023-03-11 12:13:16
![](https://img.aspxhome.com/file/2023/9/69039_0s.jpg)
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2024-05-11 09:19:05
![](https://img.aspxhome.com/file/2023/0/126310_0s.jpg)
python with提前退出遇到的坑与解决方案
2023-12-24 15:02:35
Python监控服务器实用工具psutil使用解析
2021-10-14 03:16:24
最新MySql8.27主从复制及SpringBoot项目中的读写分离实战教程
2024-01-19 15:40:27
![](https://img.aspxhome.com/file/2023/8/115338_0s.jpg)
Python压缩解压缩zip文件及破解zip文件密码的方法
2023-04-20 10:30:30
![](https://img.aspxhome.com/file/2023/2/65932_0s.jpg)
浅谈Python 的枚举 Enum
2021-02-01 16:42:15
MySQL表设计优化与索引 (四)
2010-10-25 19:50:00
用python生成一张壁纸实例代码
2022-06-06 10:26:51
![](https://img.aspxhome.com/file/2023/7/127707_0s.png)
asp error对象基础
2008-08-04 13:25:00
Python 读写文件的操作代码
2021-11-16 02:43:44
MySQL创建数据表时设定引擎MyISAM/InnoDB操作
2024-01-20 18:28:58
![](https://img.aspxhome.com/file/2023/4/79034_0s.jpg)
用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
2011-12-01 07:53:11
MySQL动态字符串处理DYNAMIC_STRING
2024-01-26 01:20:19
uni-app网络请求、数据缓存实例详解
2023-08-09 03:49:12
Asp中如何设计跨越域的Cookie
2008-10-24 09:46:00
Python sklearn分类决策树方法详解
2023-04-20 17:14:13
![](https://img.aspxhome.com/file/2023/3/118013_0s.png)
Python面向对象之反射/自省机制实例分析
2022-07-27 06:57:53
用CSS实现图片等比例缩放
2008-01-18 21:10:00
python修改包导入时搜索路径的方法
2023-05-12 07:40:23