sql依据单个字段去重_sql如何去重查询
sql去重查询的方法:重复记录根据单个字段peopleId来判断,使用语句删除,代码为【where peopleId in (select peopleId from people group by peopleId 】。
sql去重查询的方法:
sql 单表/多表查询去除重复记录
单表distinct
多表group by
group by 必须放在 order by 和 limit之前,不然会报错
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查找表中多余的重复记录(多个字段)
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
(二)
比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*) From A Group By Name Having Count(*) > 1
如果还查性别也相同大则如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
(三)
方法一
declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount @max delete from 表名 where 主字段 = @id fetch cur_rows into @id,@max end close cur_rows set rowcount 0
方法二
"重复记录"有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用
select distinct * from tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
select distinct * into #Tmp from tableName drop table tableName select * into tableName from #Tmp drop table #Tmp
发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。
2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下
假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集
select identity(int,1,1) as autoID, * into #Tmp from tableName select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID select * from #Tmp where autoID in(select autoID from #tmp2)
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
(四)
查询重复
select * from tablename where id in (select id from tablename group by id having count(id) > 1 )
3、查找表中多余的重复记录(多个字段)
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
运行会产生问题,where(a.peopleId,a.seq)这样的写发是通不过的!!!
相关学习推荐:SQL视频教程
sql依据单个字段去重_sql如何去重查询相关推荐
- sql依据单个字段去重_小白学习笔记,测试工程师必备SQL语句整理
作为一个软件测试工程师,我们在测试过程中往往需要对数据库数据进行操作,但是我们的操作大多以查询居多,有时会涉及到新增,修改,删除等操作,所以我们其实并不需要对数据库的操作有特别深入的了解,以下是我在工 ...
- detachedcriteria查询去重_sql的简单查询
在sql的增删改查中.查询用的最多.所以对查询做多一点的记录 最基本格式: select 字段名1,字段名2,... from 表名 如果查询的想显示所有的字段 select * from 表名 查询 ...
- sql having是什么意思_sql之汇总查询
1.汇总函数 count:求某列的行数 sum:对某列数据求和(数值类型) avg:求某列数据的平均值(数值类型) max:求某列数据的最大值,min:求某列数据的最小值 练习: 2.分组 group ...
- sql多层嵌套别名无效_SQL之复杂查询
前文学了汇总分析,学了常见的汇总函数,会分组并且掌握了对分组结果指定条件.今天开始学习SQL的视图和子查询,还有数据库关联与嵌套查询内容的学习. 一.视图 1.1视图是有单固定存储可反复读取使用的子查 ...
- Excel 2010 SQL应用034 字段中含有方括号的查询
目录 源数据表 解决方案 模糊匹配中特殊字符的表示 源数据表 姓名 部门 刘静茹 市场部 何冬梅 市场部 王清容 市场部 [程飞娥] 财务部 朱小林 财务部 罗秀丽 财务部 王川洪 生产部 [何刚] ...
- sql 加一列 数字_sql语句中查询出的数据添加一列,并且添加默认值
查询出数据,并且要添加一列表中都不存在的数据,且这一列的值都是相等的 select app_id,app_secret from wx_ticket group by app_id; 查询出的数据是 ...
- JPA查询单个字段和多个字段返回类型总结
在使用springboot中,需要使用JPQL和SQL去查询记录. 获取一整条记录,返回的类型就是对应的实体类或者实体类的集合. 当不是全部字段时,返回类型就不能是实体类了. 以下是用JPQL和SQL ...
- SQL语言之DQL语言学习(一) 基础查询
DQL(data query language)数据查询语言select DQL (数据查询语言) 用于查询数据库的数据 主要命令 SELECT 基础查询 语法 select 查询列表 from 表名 ...
- sql针对某字段去重查询_sql的简单查询
在sql的增删改查中.查询用的最多.所以对查询做多一点的记录 最基本格式: select 字段名1,字段名2,... from 表名 如果查询的想显示所有的字段 select * from 表名 查询 ...
最新文章
- 就是这么迅猛的实现搜索需求--转
- 操作系统:第四章 文件管理2 - 磁盘管理,磁盘调度算法
- 使用javascript打开模态对话框
- 致我们曾经白嫖的网站
- String s1=new String(“abc“); 和String s1=“abc“区别
- 博客园添加鼠标粒子吸附特效
- xposed 主动调用方法_操作方法:主动容量管理
- 《智能计算系统》课程报告——《An Efficient FPGA Accelerator Optimized for High Throughput Sparse CNN Inference》学习笔记
- iOS关键代码遭泄露;Google正式抛弃HTTP;微博网页版出故障 | 一周业界事
- adb刷入第三方recovery_全网热门机型TWRP_Recovery最全面整理合集覆盖安卓全机型
- 第九届蓝桥杯单片机省赛试题
- 苹果手机与苹果tv连接服务器无响应,屏幕镜像正在查找Apple Tv,隔空播放无法连接?...
- 高琪老师(零基础初学入门)J20飞机项目飞机爆炸轮播图片
- UOS服务器操作系统部署EKL
- 硬盘格式化后怎么恢复文件
- antv x6踩坑记录二
- 计算机网络-无线网络
- 山西最新道路运输安全员模拟真题集及答案解析
- 恩智浦 飞思卡尔Freescale Kinetis KEA128学习笔记3--GPIO模块(二)
- hp服务器重装系统按什么键,惠普重装系统按什么键|惠普u盘装系统按哪个键