oracle中怎么删除数据中重复的字段,只保留重复数据中的一个数据?

假设我有很多数据,但是其中很多数据都是重复的。我该怎么删除这些重复的数据?并且我还要保留一条?... 假设我有很多数据,但是其中很多数据都是重复的。我该怎么删除这些重复的数据?并且我还要保留一条? 展开
 我来答
力飞葛凝远
2020-04-20 · TA获得超过3630个赞
知道大有可为答主
回答量:3126
采纳率:29%
帮助的人:432万
展开全部
oracle中在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较"高效"的,如下语句:
SELECT
data_guid
FROM
adam_entity_datas
a
WHERE
a.rowid
>
(SELECT
MIN(b.rowid)
FROM
adam_entity_datas
b
WHERE
b.data_guid
=
a.data_guid)
如果表中有大量数据,但是"重复数据比较少",那么可以用下面的语句提高效率
SELECT
data_guid
FROM
adam_entity_datas
WHERE
data_guid
IN
(SELECT
data_guid
FROM
adam_entity_datas
GROUP
BY
data_guid
HAVING
COUNT(*)
>
1)
此方法查询出所有重复记录了,也就是说,只要是重复的就选出来,下面的语句也许"更高效"
SELECT
data_guid
FROM
adam_entity_datas
WHERE
ROWID
IN
(SELECT
rid
FROM
(SELECT
ROWID
rid,
row_number()
over(PARTITION
BY
data_guid
ORDER
BY
ROWID)
m
FROM
adam_entity_datas)
WHERE
m
<>
1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式