首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Oracle的表中查找重复的值?

如何在Oracle的表中查找重复的值?
EN

Stack Overflow用户
提问于 2008-09-12 15:10:27
回答 13查看 773K关注 0票数 298

哪条最简单的SQL语句将返回给定列的重复值以及它们在Oracle数据库表中出现的次数?

例如:我有一个列为JOB_NUMBERJOBS表。我怎样才能知道我是否有重复的JOB_NUMBER,以及它们被复制了多少次?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2008-09-12 15:13:47

按计数聚合列,然后使用HAVING子句查找出现次数超过一次的值。

代码语言:javascript
运行
复制
SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name
HAVING COUNT(column_name) > 1;
票数 653
EN

Stack Overflow用户

发布于 2008-09-13 09:35:42

另一种方式:

代码语言:javascript
运行
复制
SELECT *
FROM TABLE A
WHERE EXISTS (
  SELECT 1 FROM TABLE
  WHERE COLUMN_NAME = A.COLUMN_NAME
  AND ROWID < A.ROWID
)

当在column_name上有索引时,工作正常(足够快)。这是删除或更新重复行的更好方法。

票数 61
EN

Stack Overflow用户

发布于 2008-09-12 15:17:15

我能想到的最简单的:

代码语言:javascript
运行
复制
select job_number, count(*)
from jobs
group by job_number
having count(*) > 1;
票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档