我需要在2个或多个字段中找到重复的记录。但在Access中使用此功能不起作用:
SELECT assay.depth_from, assay.au_gt
FROM assay
GROUP BY depth_from, au_gt
HAVING count(*) >1;
我是不是错过了什么?它确实与这里的各种答案相匹配,所以不确定是什么。
我刚从中得到一个depth_from重复的记录,但au_gt不重复。事实上,并不是所有的depth_from都是重复的。
我发现SQL可能存在两个语法问题。首先,您可能不需要在字段名之前使用assay.
前缀,因为您已经指定了要从哪个表中选择,这会使您对GROUP BY中这些字段的引用不一致。如果在SELECT语句中使用assay.
,也可以在GROUP BY中使用它。其次,您应该在SELECT语句中包含count(*)
。这基本上是出于同样的原因——无论您在GROUP BY和HAVING中引用什么,都应该是您在SELECT中指定的列名。试试这个:
SELECT depth_from, au_gt, count(*)
FROM assay
GROUP BY depth_from, au_gt
HAVING count(*) >1;