请教一条查询语句的效率问题!

liyujun_168 2006-01-04 04:02:38
一个数据表,其表结构为:
SQL> desc temp1;
Name Type
------ --------
A1 VARCHAR2(30)
A2 VARCHAR2(255)

该表的大约有50万行数据,里面存在有很多A1是相同的数据,现在如何将这些重复的数据选出来?
我使用以下语句查询:
SELECT * FROM temp1 E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM temp1 X WHERE X.A1 = E.A1)
可是由于数据量太大,查询很久都没有结果。请教各位有没有更好的办法或者更高效的语句可以快速查询出重复的数据。谢谢!
...全文
91 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvjack 2006-01-05
  • 打赏
  • 举报
回复
select * from temp1 a,(select a1,count(a2) as cnt from temp1 group by a1 having cnt >1) b where a.a1=b.a1
可能没有分析函数快
fzymr 2006-01-05
  • 打赏
  • 举报
回复
习惯问题
rickyelf 2006-01-04
  • 打赏
  • 举报
回复
select * from
{
select * ,count() over(partition by A1 order by A1) cnt from table
}
where cnt > 1

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧