查找重复项,计算然后返回重复计数的唯一ID

时间:2015-12-12 06:35:11

标签: sql ms-access-2010

我正在使用MSAccess 2010中的查询。

我想在多列中找到重复项的组合,计算它们的频率,给每个重复项计数一个唯一的ID,并按一个特定字段分组。 我的表有超过90个字段,看起来像这样:

ID     Field1 Field2  Field3
-----------------------------
12554    0      1       0
12558    1      0       0
15488    1      0       0
11457    0      1       0
11554    1      1       0

我希望它看起来像这样:

RecID  Field1 Field2 Field3 FREQ  FREQID
-------------------------------------------------
11457    0      1       0    2     DU0001
11554    1      1       0    1     DU0002
12554    0      1       0    2     DU0003
12558    1      0       0    2     DU0004
15488    1      0       0    2     DU0004

我已经使用SELECT,count(*),GROUP和HAVING返回了成功的结果,只要计数和分组去了,但是如果为返回autogen结果的ID字段添加/代码感到困惑,以及如何让表格中的每一行显示原始的RecID

到目前为止,这是什么工作,我仍然难过:

SELECT Table1.Field1, Table1.Field2, Table1.Field3, Count(*) AS FREQ
FROM Table1
GROUP BY Table1.Field1, Table1.Field2, Table1.Field3
HAVING (Count(*) >= 1);

因为我是新手,如果它只涉及一个查询,那将是理想的。

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式获取频率ID:

SELECT 
    Table1.ID AS RecID,
    Table1.Field1, 
    Table1.Field2, 
    Table1.Field3, 
    3 - Field1 - Field2 - Field3 AS FREQ,
    Format((Select Count(*) From Table1 As T Where T.ID < Table1.ID),"\D\U0000") AS FREQID
FROM 
    Table1
GROUP BY 
    Table1.ID,
    Table1.Field1, 
    Table1.Field2, 
    Table1.Field3
    3 - Field1 - Field2 - Field3
HAVING 
    3 - Field1 - Field2 - Field3 > 0

修改

echo ^%%~n0^%%~x0 >> somefile.txt