sql根据条件查出两条一样的数据(SQL中遇到多条相同内容只取一条的最简单实现方法)
sql根据条件查出两条一样的数据
SQL中遇到多条相同内容只取一条的最简单实现方法SQL中经常遇到如下情况,在一张表中有两条记录基本完全一样,某个或某几个字段有些许差别,
这时候可能需要我们踢出这些有差别的数据,即两条或多条记录中只保留一项。
如下:表timeand
针对time字段相同时有不同total和name的情形,每当遇到相同的则只取其中一条数据,最简单的实现方法有两种
1、select time,max(total) as total,name from timeand group by time;//取记录中total最大的值
或 select time,min(total) as total,name from timeand group by time;//取记录中total最小的值
上述两种方案都有个缺点,就是无法区分name字段的内容,所以一般用于只有两条字段或其他字段内容完全一致的情况
2、select * from timeand as a where not exists(select 1 from timeand where a.time = time and a.total<total);
此中方案排除了方案1中name字段不准确的问题,取的是total最大的值
上面的例子中是只有一个字段不相同,假如有两个字段出现相同呢?要求查处第三个字段的最大值该如何做呢?
其实很简单,在原先的基础上稍微做下修改即可:
原先的SQL语句:
select * from timeand as a where not exists(select 1 from timeand where a.time = time and a.total<total);
可修改为:
select * from timeand as a where not exists(select 1 from timeand where a.time = time and (a.total<total or (a.total=total and a.outtotal<outtotal)));
其中outtotal是另外一个字段,为Int类型
以上就是SQL中遇到多条相同内容只取一条的最简单实现方法的全部内容,希望能给大家一个参考,也希望大家多多支持开心学习网。
- mysql创建存储过程的代码(MySQL修改存储过程的详细步骤)
- sqlserver日志目录是否过大(SQL Server利用sp_spaceused如何查看表记录存在不准确的情况)
- 对mysql性能优化的看法(聊聊MySQL的COUNT的性能,看看怎么最快?)
- centos系统mysql安装及连接教程(CentOS8安装SQLServer2019的过程)
- sql server 进阶(SqlServer AS的用法)
- mysql把重复数据删掉(mysql查找删除重复数据并只保留一条实例详解)
- sql语句groupby分组后怎么显示(SQL group by去重复且按照其他字段排序的操作)
- mysql主从复制如何实现(MySql主从复制实现原理及配置)
- sql语句查询所有成绩(SQL查询排名函数实例)
- navicat15.0.28注册码(Navicat for MySQL 11注册码激活码汇总)
- mysql修改初始密码教程(使用MySQL命令行修改密码)
- SQL Server中使用order by charindex按指定顺序排序
- redhat6.5安装mysql(Redhat7.3安装MySQL8.0.22的详细教程二进制安装)
- centos7怎么安装mysql(Centos7 mysql数据库安装及配置实现教程)
- docker 增大mysql连接数(docker中修改mysql最大连接数及配置文件的实现)
- MYSQL字符集设置的方法详解(终端的字符集)(MYSQL字符集设置的方法详解终端的字符集)
- 阴阳师 孟婆山兔CP不倒 新皮肤草稿 孟婆兔 让痒痒鼠点赞(阴阳师孟婆山兔CP不倒)
- 阴阳师孟婆御魂推荐 孟婆御魂搭配毕业套(阴阳师孟婆御魂推荐)
- 袁冰妍终于接到新剧,饰演反追男主,看到合作演员 眼光果然毒辣(袁冰妍终于接到新剧)
- 记忆中的台词(记忆中的台词)
- 袁冰妍轧戏 拍《琉璃》的同时还在拍《将夜》,难怪被骂演技差(拍琉璃的同时还在拍将夜)
- 刚红就耍大牌,《琉璃》角色滤镜碎一地,心疼工作人员(琉璃角色滤镜碎一地)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9