SQL 重复记录问题的处理方法小结
1、查找重复记录
①如果只是不想在查询结果中存在重复记录, 可以加Distinct
select distinct * from TestTable
②如果是想查询重复的记录及其数量
select UserID,UserName,count(*) as '记录数'
from TestTable
Group by UserID,UserName
having count(*)>1
③ID不重复, 但是字段重复的记录只显示一条
select * from TestTable where UserID in
(select max(UserID) as UserID from TestTable group by UserName,Sex,Place)
2、删除重复记录
①一种思路是利用临时表, 把查询到的无重复记录填充到临时表, 再把临时表的记录填充回原始表
select distinct * into #Temp from TestTable
drop table TestTable
select * into TestTable from #Temp
drop table #Temp
②删除ID不重复, 但是字段重复的记录(就是按字段查询出相同字段记录中最大的ID,然后保留此记录, 删除其他记录).(group by 的字段, 有点麻烦).
delete TestTable where UserID not in
(select max(UserID) as UserID from TestTable group by UserName,Sex,Place)
相关推荐
-
SQL 重复记录问题的处理方法小结
1.查找重复记录 ①如果只是不想在查询结果中存在重复记录, 可以加Distinct select distinct * from TestTable ②如果是想查询重复的记录及其数量 select UserID,UserName,count(*) as '记录数' from TestTable Group by UserID,UserName having count(*)>1 ③ID不重复, 但是字段重复的记录只显示一条 select * from TestTable where UserID
-
SQL重复记录查询 查询多个字段、多表查询、删除重复记录的方法
SQL重复记录查询 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 例二: select * from testtable where numeber in (select number from people group by numbe
-
SQL中的三种去重方法小结
目录 distinct group by row_number 在使用SQL提数的时候,常会遇到表内有重复值的时候,比如我们想得到 uv (独立访客),就需要做去重. 在 MySQL 中通常是使用 distinct 或 group by子句,但在支持窗口函数的 sql(如Hive SQL.Oracle等等) 中还可以使用 row_number 窗口函数进行去重. 举个栗子,现有这样一张表 task: task_id order_id start_time 1 123 2020-01-05 1 2
-
SQL重复记录查询的几种方法
1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 复制代码 代码如下: select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count (peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 复制代码 代码如下: delete from peop
-
SQL语句实现删除ACCESS重复记录的两种方法
以下就重复记录删除的问题作一阐述. 有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略. 1.对于第一种重复,比较容易解决,使用 select distinct * from tableName 就可以得到无重复记录的结果集. 如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除 复制代码 代码如下: select distinct * into #Tmp from table
-
postgresql 删除重复数据的几种方法小结
在使用PG数据库的这段时间,总结了三种删除重复数据的方法,其中最容易想到的就是最常规的删除方法,但此方法性能较差,删数据耗时较久,虽容易实现,但性能太差,影响写数据的速率. 另外就是被使用的group by删除方法,效率较高. 还有一种是刚发现的,还没有验证,现在就总结下这三种删除方法,并验证各自的执行效率. 首先创建一张基础表,并插入一定量的重复数据. test=# create table deltest(id int, name varchar(255)); CREATE TABLE te
-
SQL Server2008中删除重复记录的方法分享
现在让我们来看在SQL SERVER 2008中如何删除这些记录, 首先,可以模拟造一些简单重复记录: 复制代码 代码如下: Create Table dbo.Employee ( [Id] int Primary KEY , [Name] varchar(50), [Age] int, [Sex] bit default 1 ) Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(1,'James',25,default)
-
使用SQL语句去掉重复的记录【两种方法】
海量数据(百万以上),其中有些全部字段都相同,有些部分字段相同,怎样高效去除重复? 如果要删除手机(mobilePhone),电话(officePhone),邮件(email)同时都相同的数据,以前一直使用这条语句进行去重: delete from 表 where id not in (select max(id) from 表 group by mobilePhone,officePhone,email ) or delete from 表 where id not in (select mi
-
sql分组后二次汇总(处理表重复记录查询和删除)的实现方法
--处理表重复记录(查询和删除) /****************************************************************************************************************************************************** 1.Num.Name相同的重复值记录,没有大小关系只保留一条 2.Name相同,ID有大小关系时,保留大或小其中一个记录 整理人:中国风(Roy) 日期:2008
-
SQL Server 常用函数使用方法小结
之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行...嘿嘿... 直到今天用到substring()这个函数,C# 里面这个方法起始值是 0,而 SQL 里面起始值是 1.傻傻分不清楚... 这篇博客作为记录 SQL 的函数的使用方法,想到哪里用到哪里就写到哪里... SubString():用于截取指定字符串的方法.该方法有三个参数: 参数1:用于指定要操作的字符串. 参数2:用于指定要截取的字符串的起始位置,起始值为 1 . 参数3:用于指定要截取的长度. select sub
随机推荐
- 如何配置WindowsXPSP2防火墙
- ExtJS TabPanel beforeremove beforeclose使用说明
- Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
- C语言打印杨辉三角示例汇总
- 在Python中使用swapCase()方法转换大小写的教程
- JQuery ztree 异步加载实例讲解
- jQuery EasyUI API 中文文档 - Pagination分页
- 浅谈java中String StringBuffer StringBuilder的区别
- Linux6.7卸载系统自带的mysql-libs* crontab命令不能用了原因分析
- Nginx隐藏服务器端各类信息的方法
- Android package属性、package name和Application ID三者的联系及区别
- PHP中SESSION使用中的一点经验总结
- Destoon模板制作简明教程
- php学习笔记之 函数声明
- android实现双日期选择控件(可隐藏日,只显示年月)
- 宽带路由器性能评判常见误区
- Android使用Scroller实现弹性滑动效果
- Flask解决跨域的问题示例代码
- Linux 内核空间与用户空间实现与分析
- vue axios 在页面切换时中断请求方法 ajax