sql not
access数据库文件只有一个表A,有60000多条记录
结构如下:
ID 地址 地区
1 厦门 华东
2 泉州 华东
3 厦门 华东
4 深圳 华南
5 深圳 华南
6 厦门 华东
.
因为存在重复记录,比如 ID:1,3,4,5
所以使用以下语句执行删除重复的记录,保留一条,但发现 NOT IN 的效率很慢,居然要等上10多分钟,怎办?有没有更好的办法
delete from cidz where id NOT in (select max(id) from cidz group by 地址)
sql not access数据库文件只有一个表A,有60000多条记录结构如下:ID 地址 地区 1 厦门 华东2 泉
答案:1 悬赏:40 手机版
解决时间 2021-05-22 01:32
- 提问者网友:半生酒醒
- 2021-05-21 12:57
最佳答案
- 五星知识达人网友:逃夭
- 2021-05-21 13:30
NOT IN速度当然很慢,因为这样会存在两个全表检索的情况,使用NOT EXISTS会快很多.
delete from t_b where exists (select 1 from t_b a where isnull(a.cost,0) > isnull(t_b.cost,0) and a.cost t_b.cost)
DELETe FROM CIDZ WHERe EXISTS (SELECt 1 FROM CIDZ A WHERe A.ID > CIDZ.ID)
---------这个删除之后,会只剩下这个表中ID最大的一行,没有别的连接条件了么?如果这么已删除,表中只剩下一行了,我觉得你的意思是不是只留下每个地址分组后ID最大的一行啊?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯