根据一个标准忽略重复项
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
);
我有一个 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
);