哪条最简单的SQL语句将返回给定列的重复值以及它们在Oracle数据库表中出现的次数?
例如:我有一个列为JOB_NUMBER的JOBS表。我怎样才能知道我是否有重复的JOB_NUMBER,以及它们被复制了多少次?
发布于 2008-09-12 15:13:47
按计数聚合列,然后使用HAVING子句查找出现次数超过一次的值。
SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name
HAVING COUNT(column_name) > 1;发布于 2008-09-13 09:35:42
另一种方式:
SELECT *
FROM TABLE A
WHERE EXISTS (
SELECT 1 FROM TABLE
WHERE COLUMN_NAME = A.COLUMN_NAME
AND ROWID < A.ROWID
)当在column_name上有索引时,工作正常(足够快)。这是删除或更新重复行的更好方法。
发布于 2008-09-12 15:17:15
我能想到的最简单的:
select job_number, count(*)
from jobs
group by job_number
having count(*) > 1;https://stackoverflow.com/questions/59232
复制相似问题