SQL 按照多个字段为标准的重复数据处理
表结构:T1
id int Unchecked
name	nchar(10)	Checked
value	nchar(10)	Checked
数据:
1 a a1 
2	a         	a1        
3	b         	b1        
4	b         	b2        
5	c         	c1        
6	c         	c1        
7	c         	c2
以name和value为标准
所有数据查询,重复行只保留ID最小的一条:
select id,name,value from
(select no=row_number() over(partition by name,value order by id),* from T_Test) t
where no=1
结果:
1 a a1 
3	b         	b1        
4	b         	b2        
5	c         	c1        
7	c         	c2
删除重复行,保留重复行ID最小的一条:
DELETE FROM T_Test where id in(
select id from
(select no=row_number() over(partition by name,value order by id),* from T_Test) t
where no>1
)
结果:ID为2和6的行被删除。
查询重复数据,保留ID最小项:
SELECT * FROM T_Test t1 
WHERE t1.name IN (SELECT NAME FROM T_Test GROUP BY NAME,value HAVING COUNT(*) >1)
and t1.id in(
select min(id) FROM T_Test GROUP BY NAME,value HAVING COUNT(*) >1)
结果:
1 a a1 
5	c         	c1
SQL 按照多个字段为标准的重复数据处理的更多相关文章
- Sql Server xml 类型字段的增删改查
		
1.定义表结构 在MSSM中新建数据库表CommunicateItem,定义其中一个字段ItemContentXml 为xml类型 2.编辑表数据,新增一行,发现xml类型不能通过设计器录入数据. 需 ...
 - SQL Server对Xml字段的操作
		
T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和 ...
 - 向已写好的多行插入sql语句中添加字段和值
		
#region 添加支款方式--向已写好的多行插入sql语句中添加字段和值 public int A_ZhifuFS(int diqu) { ; string strData = @"SEL ...
 - sql 给数据库表 字段 添加注释
		
最近发现一些代码生成器 有针对注释做一个很好的转化,之前建表的时候 没有这块的注释.现在想增加,专门去看了下 如何增加注释 1 -- 表加注释 2 EXEC sys.sp_addextendedpro ...
 - SQL 把表中字段存储的逗号隔开内容转换成列表形式
		
原文:[原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式 我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ...
 - SQL语句更新时间字段的年份、月份、天数、时、分、秒
		
SQL语句更新时间字段的年份.月份.天数.时.分.秒 --修改d表日期字段的年份update dset birth=STUFF(convert(nvarchar(23),birth,120),1,4, ...
 - 使用 SQL Server 的 uniqueidentifier 字段类型
		
原文:使用 SQL Server 的 uniqueidentifier 字段类型 SQL Server 自 2008 版起引入了 uniqueidentifier 字段,它存储的是一个 UUID, 或 ...
 - SQL Server判断某个字段是否包含中文/英文字符/数字
		
原文:SQL Server判断某个字段是否包含中文/英文字符/数字 因最近在清理系统中的脏数据,需要查询某个字段是否包含中文/英文字符/数字的数据, 比较简单,仅以此篇博客做一个简单总结,方便以后查阅 ...
 - SQL Server 2008添加字段成功,但提示列名无效
		
在sql后查询,给现有表添加一个字段,即执行sql语句: alter table [sxrq_1108].[dbo].[公司周报表详情] add 总计 int default 0 然后在上述sql查语 ...
 
随机推荐
- wait、notify为什么要放在同步代码块中
			
等待方遵循的原则: 获取对象的锁,不满足条件就调用wait()方法,条件满足继续执行 通知方原则: 获取对象的锁,改变条件,然后notify 每个对象都有一个监视器锁,这个监视器锁的数据结构如下: w ...
 - ABP官方文档翻译 1.3 模块系统
			
ABP模块系统 介绍 模块定义 生命周期方法 PreInitialize Initialize PostInitialize Shutdown 模块依赖 插件系统 ASP.NET Core ASP.N ...
 - MVC通过服务端对数据进行验证(和AJAX验证一样)
			
在实体类中 添加 Remote属性,指定用某个View下的某个方法进行验证,如下面表示用User控制器中的UserExiting方法验证 public class User { [Remot ...
 - [Linux 002]——Linux的常用命令
			
经过前面的学习,大概了解了计算机组成原理和操作系统的一些知识.尽管这些知识都是琐碎的,拼凑的,在以后的工作和学习中仍需进行深入的了解.但是这些预备知识对于准备跨入 Linux 大门的童鞋来说,应该是足 ...
 - 4.9版本linux内核的ina220电流检测芯片源码在哪里
			
答:在drivers/hwmon/ina2xx.c中,内核配置项为CONFIG_SENSORS_INA2XX Location: -> Device Drivers -> Hardware ...
 - CentOS安装wkhtmltopdf及解决中文支持问题
			
安装wkhtmltopdf,先下载 wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm yum install -y wkhtmltox-0.12.2.1_linu ...
 - asp.net core + log4net+exceptionles+DI
			
参考了ABP的代码,我也用依赖注入的原则,设计了日志模块. 与abp不同之处在于:1)DI容器使用的是.net core自带的注入容器,2)集成了excetpionless日志模块,3)不依赖于abp ...
 - vc libcurl 模拟上传文件
			
http://www.cnblogs.com/killbit/p/5393301.html 附上这篇文章,因为当时就已经想到了模拟上传,但是因为时间关系,所以就直接用PHP写了.现在改进一下,用VC+ ...
 - 测试mysql
			
sysbench 测试mysql TODO emacs
 - response.getWriter().write("中文");乱码问题
			
起初遇到这个问题,网上几乎所有的建议都是: response.setHeader("Content-type", "text/html;charset=UTF-8&quo ...