我一直在寻找解决一个非常微不足道的问题的简单方法。我有一大堆记录(~120,000)我需要筛选重复项,为每组重复项分配一个序号,如下面的Assign#
:
最终,我正在努力实现这一目标:
我将P1
,P2
和P3
字段用作查询中的一组排序参数(升序/降序),以确定每个字段的最佳/最高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;
我愿意接受任何建议和更正!感谢您的帮助=)
答案 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