如何在access sql的两列中查找重复项
我有一张大桌子,里面有两万张唱片。我想找到类似的记录(BNO和BNO CSCcode列上的重复记录) 我想找回我喜欢的东西如何在access sql的两列中查找重复项,sql,ms-access,Sql,Ms Access,我有一张大桌子,里面有两万张唱片。我想找到类似的记录(BNO和BNO CSCcode列上的重复记录) 我想找回我喜欢的东西 CSCcode Description BNO BNO-CSCcode EID 05026 blah2 5431 5431-05026 1077 05026 blah3 5431 5431-05026 3011 07620
CSCcode Description BNO BNO-CSCcode EID
05026 blah2 5431 5431-05026 1077
05026 blah3 5431 5431-05026 3011
07620 blah5 7560 7560-07620 7890
07620 blah6 7560 7560-07620 8560
01234 sampledesc 0009 0009-01234 1156
01234 sampledesc8 0009 0009-01234 0023
如何在sql查询中指定它 使用具有:
select field1,field2,field3, count(*)
from table_name
group by field1,field2,field3
having count(*) > 1
select *
from mytable
where bno & bno_csccode in
(
select bno & bno_csccode
from mytable
group by bno, bno_csccode
having count(*) > 1
);
您必须在查询中使用
EXISTS
命令
这将提供所需的重新过滤:
SELECT *
FROM TableName t0
WHERE EXISTS (
SELECT 1
FROM TableName t1
WHERE t0.BNO = t1.BNO AND t0.BNOCSC = t1.BNOCSC
GROUP BY BNO, BNOCSC
HAVING count(*) > 1
)
存在
用于一列或多列之间的比较 这是一个开始,但是OP需要一个连接到源表的子查询的结果来获取他需要的数据。在MS Access中有一个向导来完成这项工作(查找重复项向导)是的,我试过了。但我想知道,在20000多张唱片中,它只检索到4张唱片。我想我用的那个向导可能是错的。我该怎么用呢。t2或t1是什么?我只有一个表它们是表的别名很抱歉,我的访问进入无响应模式,试图从任务管理器关闭。有什么原因吗?缺乏耐心?;-)由于串联,无法使用索引。这可能会减慢速度。bno代码中是否始终包含bno?然后只需选择csccode,即仅选择bno_csccode而不是bno&bno_csccode。
select *
from mytable
where bno & bno_csccode in
(
select bno & bno_csccode
from mytable
group by bno, bno_csccode
having count(*) > 1
);
SELECT *
FROM TableName t0
WHERE EXISTS (
SELECT 1
FROM TableName t1
WHERE t0.BNO = t1.BNO AND t0.BNOCSC = t1.BNOCSC
GROUP BY BNO, BNOCSC
HAVING count(*) > 1
)