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如何去重查询相关推荐

  1. sql依据单个字段去重_小白学习笔记,测试工程师必备SQL语句整理

    作为一个软件测试工程师,我们在测试过程中往往需要对数据库数据进行操作,但是我们的操作大多以查询居多,有时会涉及到新增,修改,删除等操作,所以我们其实并不需要对数据库的操作有特别深入的了解,以下是我在工 ...

  2. detachedcriteria查询去重_sql的简单查询

    在sql的增删改查中.查询用的最多.所以对查询做多一点的记录 最基本格式: select 字段名1,字段名2,... from 表名 如果查询的想显示所有的字段 select * from 表名 查询 ...

  3. sql having是什么意思_sql之汇总查询

    1.汇总函数 count:求某列的行数 sum:对某列数据求和(数值类型) avg:求某列数据的平均值(数值类型) max:求某列数据的最大值,min:求某列数据的最小值 练习: 2.分组 group ...

  4. sql多层嵌套别名无效_SQL之复杂查询

    前文学了汇总分析,学了常见的汇总函数,会分组并且掌握了对分组结果指定条件.今天开始学习SQL的视图和子查询,还有数据库关联与嵌套查询内容的学习. 一.视图 1.1视图是有单固定存储可反复读取使用的子查 ...

  5. Excel 2010 SQL应用034 字段中含有方括号的查询

    目录 源数据表 解决方案 模糊匹配中特殊字符的表示 源数据表 姓名 部门 刘静茹 市场部 何冬梅 市场部 王清容 市场部 [程飞娥] 财务部 朱小林 财务部 罗秀丽 财务部 王川洪 生产部 [何刚] ...

  6. sql 加一列 数字_sql语句中查询出的数据添加一列,并且添加默认值

    查询出数据,并且要添加一列表中都不存在的数据,且这一列的值都是相等的 select app_id,app_secret from wx_ticket group by app_id; 查询出的数据是 ...

  7. JPA查询单个字段和多个字段返回类型总结

    在使用springboot中,需要使用JPQL和SQL去查询记录. 获取一整条记录,返回的类型就是对应的实体类或者实体类的集合. 当不是全部字段时,返回类型就不能是实体类了. 以下是用JPQL和SQL ...

  8. SQL语言之DQL语言学习(一) 基础查询

    DQL(data query language)数据查询语言select DQL (数据查询语言) 用于查询数据库的数据 主要命令 SELECT 基础查询 语法 select 查询列表 from 表名 ...

  9. sql针对某字段去重查询_sql的简单查询

    在sql的增删改查中.查询用的最多.所以对查询做多一点的记录 最基本格式: select 字段名1,字段名2,... from 表名 如果查询的想显示所有的字段 select * from 表名 查询 ...

最新文章

  1. 就是这么迅猛的实现搜索需求--转
  2. 操作系统:第四章 文件管理2 - 磁盘管理,磁盘调度算法
  3. 使用javascript打开模态对话框
  4. 致我们曾经白嫖的网站
  5. String s1=new String(“abc“); 和String s1=“abc“区别
  6. 博客园添加鼠标粒子吸附特效
  7. xposed 主动调用方法_操作方法:主动容量管理
  8. 《智能计算系统》课程报告——《An Efficient FPGA Accelerator Optimized for High Throughput Sparse CNN Inference》学习笔记
  9. iOS关键代码遭泄露;Google正式抛弃HTTP;微博网页版出故障 | 一周业界事
  10. adb刷入第三方recovery_全网热门机型TWRP_Recovery最全面整理合集覆盖安卓全机型
  11. 第九届蓝桥杯单片机省赛试题
  12. 苹果手机与苹果tv连接服务器无响应,屏幕镜像正在查找Apple Tv,隔空播放无法连接?...
  13. 高琪老师(零基础初学入门)J20飞机项目飞机爆炸轮播图片
  14. UOS服务器操作系统部署EKL
  15. 硬盘格式化后怎么恢复文件
  16. antv x6踩坑记录二
  17. 计算机网络-无线网络
  18. 山西最新道路运输安全员模拟真题集及答案解析
  19. 恩智浦 飞思卡尔Freescale Kinetis KEA128学习笔记3--GPIO模块(二)
  20. hp服务器重装系统按什么键,惠普重装系统按什么键|惠普u盘装系统按哪个键

热门文章

  1. Error Correction
  2. 自动化运维之系统安装部署
  3. python大数据培训班学费
  4. 第三方能查到我们的微信聊天记录?
  5. 一个丰富的通知工具类 NotifyUtil
  6. ch340t电路_ch340g电路图5v和3.3v供电电路
  7. 程序员容易读错的IT专业术语词典
  8. git拉取请求_Git和WordPress:如何使用拉取请求自动更新帖子
  9. 软件工程(软件计划)
  10. 微信小程序 - 查看输入值的长度