This question几乎完成了我想要完成的任务,但我的表格更复杂,没有主键。我也不太了解最佳答案,t1和t2是什么意思。如果这个答案适用于我,如果有人解释代码,我将不胜感激。
我有几个月的表格,其中包含有关客户及其持有的政策的信息。每个客户端都有一个唯一的策略ID,但它们可以有多个策略,从而在相同的策略ID下生成多个记录。每个字段中的重复记录可以完全不同或完全相同。
就我的目的而言,我希望每个政策ID只保留一条记录。理想情况下,保留的记录是年龄最高的记录,但如果它太复杂则不需要。请注意,可能有多个记录的年龄是该特定策略ID的最大值,那么我们保留哪一个并不重要。
我不打算创建主键,因为在某些情况下,我将在相同的策略ID下保留两个记录,我将自己修改代码。我也不想创建另一个表,因为我正在使用10个以上的表。有人建议使用first()
,但我不确定如何将其合并到查询中。
如果您需要任何其他信息,请与我们联系,并提前感谢您的帮助!
=========更新#1
好吧,看起来我的问题有点不切实际,所以我会添加一个自动编号主键。我将如何处理?
答案 0 :(得分:3)
这些方面的东西:
DELETE Policies.*
FROM Policies
WHERE Policies.ID Not In (
SELECT TOP 1 id
FROM policies p
WHERE p.policyid = policies.policyid
ORDER BY createdate DESC, id )