SQL中如何删除重复数据

例如:ABCD1张李刘王2李金张金3张刘李王4金李张刘把这种情况变成,重复的姓氏只留一个其余的全部删怎么弄?我是新手,麻烦说彻底详细些试了很多方法都无效语句也不会用,在哪... 例如:

A B C D
1 张 李 刘 王

2 李 金 张 金

3 张 刘 李 王

4 金 李 张 刘

把这种情况变成,重复的姓氏只留一个 其余的全部删怎么弄?

我是新手 ,麻烦 说彻底详细些 试了很多方法都无效
语句也不会用,在哪输入也不知道。
请高人指点。
展开
 我来答
皮洁仙璧
2019-12-02 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:34%
帮助的人:654万
展开全部
select
字段1,字段2,字段3
from
table
group
by
字段1,字段2,字段3
having
count(*)>1
用上边这句能找出所有重复的数据
字段1,2,3你替换成你表里的字段名,如果有更多字段的话,你就继续添加,最后group
by的时候不要忘记了
删除的时候要建立一个临时表
create
table
new_table
as
select
字段1,字段2,字段3
from
old_table
group
by
字段1,字段2,字段3;
然后删除原表数据
truncate
table
old_table;
然后把临时表数据反插回去
insert
into
new_table
select
*
from
old_table;
瓮夕骑月
2019-07-23 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:33%
帮助的人:830万
展开全部
例如:记录虽然存在重复,但是rowid是唯一的,所以在子查询取得重复行中最小的rowid,删除重复行中
大于最小的rowid的行,只是保留了最小rowid的行,就是删除了重复行。
这个语句如果要调优的话,可以在内部查询中建索引
delete
from
ttt
a
where
rowid>(select
min(rowid)
from
ttt
b
where
a.name=b.name);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
成杨氏伍秋
2019-10-15 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:34%
帮助的人:878万
展开全部
去掉重复数据,把没有重复的数据放在临时表#table中
select
distinct
*
into
#table
from
tablename
删除原数据
truncate
table
tablename
恢复数据
insert
into
tablename
select
*
from
#table
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
antxj1024
2009-09-24 · TA获得超过204个赞
知道答主
回答量:363
采纳率:0%
帮助的人:255万
展开全部
1.把重复记录放到临时表:
select A,B,C,D into temp1 from [表名]
group by A,B,C,D
having count(*)>1
2.将不重复的记录记入temp1表:
insert temp1
select A,B,C,D from [表名]
group by A,B,C,D
having count(*)=1
3.如果确定临时表里的记录没错,删了原始表,将
临时表里的数据insert到原始表
insert [表名] select * from temp1

补充一下,第二步做完,你的数据库里有一个temp1表,这个表其实就是你想要的表,你可以把原始表彻底删了,把这个表名字改下也行
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
酒肉馋师
2020-02-26 · TA获得超过109个赞
知道答主
回答量:1294
采纳率:92%
帮助的人:102万
展开全部

解决在excel电子表格中,如果混杂有重复数据,如何定位,如何删除的问题。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式