在oracle中怎么查一个表中的的一个字段的重复数据

在线等着呢... 在线等着呢 展开
 我来答
百度网友8bddcf1254
2018-03-30 · TA获得超过1.6万个赞
知道小有建树答主
回答量:0
采纳率:100%
帮助的人:0
展开全部

select testid,count(1) from testtable group by testid having count(1)>1

count(1)就是重复在数量

如何查询重复的数据

select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1

PS:将上面的>号改为=号就可以查询出没有重复的数据了。

Oracle删除重复数据的SQL(删除所有):

删除重复数据的基本结构写法:

想要删除这些重复的数据,可以使用下面语句进行删除

delete from 表名 a where 字段1,字段2 in
(select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)

上面的SQL注意:语句非常简单,就是将查询到的数据删除掉。不过这种删除执行的效率非常低,对于大数据量来说,可能会将数据库吊死。

建议先将查询到的重复的数据插入到一个临时表中,然后对进行删除,这样,执行删除的时候就不用再进行一次查询了。如下:

CREATE TABLE 临时表 AS  (select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)

上面这句话就是建立了临时表,并将查询到的数据插入其中。

下面就可以进行这样的删除操作了:

delete from 表名 a where 字段1,字段2 in (select 字段1,字段2 from 临时表);

spyhost
推荐于2018-02-23 · TA获得超过3132个赞
知道小有建树答主
回答量:946
采纳率:90%
帮助的人:103万
展开全部
select testid,count(1) from testtable group by testid having count(1)>1

count(1)就是重复在数量

追问
其实我想要的是这个样子的,就是重复的数量也有,然后假如有个标签号,每个标签号是不同的,查出来的是这样的  标签号  id 数量  这样的重复的数据也显示出来,谢谢
追答
select testid,count(1) from testtable group by testid

testid就是你的标签号,count(1)就是id数量,若大於1说明有重复。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-09-22
展开全部
根据感觉重复的字段分区,加上一个row_number,如果row_number>1,那么就找到了重复的数据了
SELECT * FROM
(
select T.OWNER,T.TABLE_NAME,T.CNT,T.CREATE_TIME
,ROW_NUMBER() OVER(PARTITION BY T.TABLE_NAME ORDER BY T.TABLE_NAME) row_num
from etluser.t99_qa_table_rowcnt t
)T
WHERE T.row_num>1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式