为每组重复记录分配序号

时间:2016-02-10 21:35:20

标签: mysql sql duplicates ms-access-2010 autonumber

我一直在寻找解决一个非常微不足道的问题的简单方法。我有一大堆记录(~120,000)我需要筛选重复项,为每组重复项分配一个序号,如下面的Assign#enter image description here

最终,我正在努力实现这一目标: enter image description here

我将P1P2P3字段用作查询中的一组排序参数(升序/降序),以确定每个字段的最佳/最高Name一组相同的NCBI命中。 我已经尝试了很多东西,我的主要问题是访问冻结了一半,我真的不知道脚本是否正常运行。

FROM [sortquery] 
WHERE ((([sortquery].Name) In 
(
    SELECT TOP 1 [sortquery].Name 
    FROM [sortquery] AS Dupe 
    WHERE Dupe.NCBI=[sortquery].NCBI 
    ORDER BY Dupe.NCBI
))) 
ORDER BY [sortquery].NCBI;

我愿意接受任何建议和更正!感谢您的帮助=)

1 个答案:

答案 0 :(得分:0)

传统的方法是计算:

SELECT 
   *,
   (Select Count(*)
   From Sortquery As S
   Where S.NCBI = Sortquery.NCBI 
       And S.P1 * 1000 + S.P3 >= Sortquery.P1 * 1000 + Sortquery.P3) As [Assign#]
FROM 
    [sortquery] 
ORDER BY
    NCBI Asc,
    P1 Desc,
    P3 Desc,
    [Name] Asc,
    [Assign#] Asc