sql not access数据库文件只有一个表A,有60000多条记录结构如下:ID 地址 地区 1 厦门 华东2 泉州 华东3 厦门 华东4 深圳 华南5 深圳 华南6 厦门 华东 .因为存在重复记录,比如 ID:1,3,4,5所以使用以下

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/07 03:46:53
sql not access数据库文件只有一个表A,有60000多条记录结构如下:ID 地址 地区 1 厦门 华东2 泉州 华东3 厦门 华东4 深圳 华南5 深圳 华南6 厦门 华东 .因为存在重复记录,比如 ID:1,3,4,5所以使用以下

sql not access数据库文件只有一个表A,有60000多条记录结构如下:ID 地址 地区 1 厦门 华东2 泉州 华东3 厦门 华东4 深圳 华南5 深圳 华南6 厦门 华东 .因为存在重复记录,比如 ID:1,3,4,5所以使用以下
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 泉州 华东3 厦门 华东4 深圳 华南5 深圳 华南6 厦门 华东 .因为存在重复记录,比如 ID:1,3,4,5所以使用以下
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最大的一行啊?