相同数据的排除问题

yahoo402 2004-11-29 10:01:05
表A,里面若干字段.现在认为字段a,b,c,d都相同的两条或者多条记录为重复记录,需要排除多余的而只留一条!
怎么做呢?谢谢...
现在我知道的是怎么判断重复的.就是:

select a,b,c,d,count(*) as s from A
group by a,b,c,d
order by s desc

s>1就表示这条记录重复.
...全文
168 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yahoo402 2004-11-30
  • 打赏
  • 举报
回复
现在我暂时搞定了,多谢zjcxc!结贴了!
zjcxc 元老 2004-11-30
  • 打赏
  • 举报
回复
给数据出来测试
sky_boys 2004-11-29
  • 打赏
  • 举报
回复
建立新表B,结构与原表一模一样,然后在a,b,c字段建立唯一复合索引约束,属性为忽略重复键,然后将原表数据SELECT进B表,此时B表数据就是你想要的
zjcxc 元老 2004-11-29
  • 打赏
  • 举报
回复
--不知道这样的效率呢?

select a.* from a,(select a,b,c,d=min(d) from a group by a,b,c)b
where a.a=b.a and a.b=b.b and a.c=b.c
lsxaa 2004-11-29
  • 打赏
  • 举报
回复
是的 笔误
yahoo402 2004-11-29
  • 打赏
  • 举报
回复
lsxaa(小李铅笔刀)的方法怎么查不出一条?呵呵

有个小地方更正一下,check_sum()应该是checksum()吧?
lsxaa 2004-11-29
  • 打赏
  • 举报
回复
试试,不知道效率怎么样
select *
from A a
where check_sum(*)=(select top 1 check_sum(*)
from A
where a=aa.a and b=aa.b and c=aa.c and d>aa.d)
yahoo402 2004-11-29
  • 打赏
  • 举报
回复
zjcxc(邹建)大哥的方法还在执行中,天哪...500w的数据,特别慢...(6min了)
yahoo402 2004-11-29
  • 打赏
  • 举报
回复
阿来的做法好像不严谨...
我这里统计出来数据还是有差距的...
因为表A还有别的字段,不止我提到的这四个
zjcxc 元老 2004-11-29
  • 打赏
  • 举报
回复
select distinct * from a aa
where not exists(select * from a where a=aa.a and b=aa.b and c=aa.c and d>aa.d)
WangZWang 2004-11-29
  • 打赏
  • 举报
回复
Select a,b,c,max(d) as d from A
group by a,b,c
yahoo402 2004-11-29
  • 打赏
  • 举报
回复
也许一条语句不足以搞定吧,zjcxc的那个语句好像没有什么作用.
只好用到临时表试试?
long0104 2004-11-29
  • 打赏
  • 举报
回复
select distinct * from a aa
where not exists(select * from a where a=aa.a and b=aa.b and c=aa.c and d>aa.d)

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧