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]
在 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]