Countif in access - 查找重复项并为其编制索引

Countif in access - finding duplicates and indexing them

在 Excel 工作时,我通常使用 Countif 来查找和索引我的重复项。

计数:=Countif(A:A,A1)

索引:=Countif($A$1:A2,A2)

结果会是这样

我有一个很大的访问权限 table,我想在其中做同样的事情。在 table iteself 中。 有什么好的方法可以在Access中做同样的操作吗? 我已经看到您可以使用其他一些操作,但是第一列可以是无限的数字,因此我希望能够查看每个数字并从那里进行计数和索引。

对于此要求,您需要一个定义行顺序的列,例如自动递增的 id

如果有的话,你可以用2个相关的子查询来完成:

SELECT t.[NUMBER],
       (SELECT COUNT(*) FROM tablename AS tt WHERE tt.[NUMBER] = t.[NUMBER]) AS Duplicates,
       (SELECT COUNT(*) FROM tablename AS tt WHERE tt.[NUMBER] = t.[NUMBER] AND tt.ID <= t.ID) AS [Index]
FROM tablename AS t

或使用自连接和聚合:

SELECT t1.[NUMBER],
       COUNT(*) AS Duplicates,
       COUNT(IIF(t2.id <= t1.id, 1, NULL)) AS [Index]
FROM tablename AS t1 INNER JOIN tablename AS t2
ON t2.[NUMBER] = t1.[NUMBER] 
GROUP BY t1.id, t1.[NUMBER]