根据一个标准忽略重复项

Ignoring duplicates based on a criteria except one

我有一个 table 毫秒访问,每天更新。我需要根据保单编号删除在同一开始日期内发布的所有重复项,只保留 survey_number 列中编号最高的 1 条记录。

例如,在下面的屏幕截图中,我们在同一开始日期有两条保单号“4204556734”的记录,我想删除排名较差的行并保留较好的选择,即优秀。我创建了一个 Survey_number 列来使用 MAX() 函数,但这也不起作用。我知道我应该提供一个我试过的查询,但似乎没有任何效果,所以我跳过了它。

您可以使用相关子查询:

select t.*
from t
where t.survey_number = (select max(t2.survey_number)
                         from t as t2
                         where t2.policynumber = t.policynumber and
                               t2.startdate = t.startdate
                        );