sql记录去重注意事项(经验提升)

2014-11-24 13:23:39 · 作者: · 浏览: 0

sql查询重复记录,使用:

select * from dimappnamenew as appn
where packagename,storename,app_name
in
(
select packagename,storename,app_name
from dimappnamenew group by packagename,storename,app_name having count(*)>1

)

效率慢,修改后:

select * from dimappnamenew as appn
where id
in
(
select id
from dimappnamenew group by packagename,storename,app_name having count(*)>1
)

原因:id是表的主键,三个属性映射后可以唯一对应id这个列,所以直接用id这个一个字段就行了。

你可以认真分析表内容,如果查询多个字段可以唯一对应一个字段,直接用这个字段作为外部对比,会加快效率。