sql server 查询重复数据(id不重复)
id自增的。其他字段RID,A_Time,A_Hour的数据会有重复怎么查出这三个字段里重复的数据并且删掉??保存一条id最小的记录...
id自增的。其他字段 RID,A_Time,A_Hour 的数据会有重复
怎么查出这三个字段里重复的数据并且删掉??
保存一条id最小的记录 展开
怎么查出这三个字段里重复的数据并且删掉??
保存一条id最小的记录 展开
4个回答
展开全部
可以先用distinct去重复,然后在把别的删了。
比如:delete from a where id not in(select distinct * from a)
比如:delete from a where id not in(select distinct * from a)
追问
id自增的、、直接* 不行的
追答
select distinct * from a这个是查不重复的那些数据,然后id不在那里的数据不就是重复的了吗
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
备份到新表就好了
select distinct RID,A_Time,A_Hour into newTable from yourTable
select distinct RID,A_Time,A_Hour into newTable from yourTable
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用子查询where后面使用group by ... having count(字段 )>1 判断该字段重复了.把这个加到删除语句的where里面. 字段 in(...)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是相同的全部删掉,还是相同的只保留一个?
更多追问追答
追问
保留id最小的一条记录
追答
如果你的表里还有不重复的数据,那思路应该是这样的
1、取出所有数据不重复的id,利用goup by三个字段,加个count = 1就可以知道那些只有出现一次的数据
2、取出所有数据重复的,并且id是最小的那些id,利用group by 三个字段,having count(1) > 1再得select min(id)
将1 + 2 (union all)
然后delete xxx where id not exists (1+2)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询