根据上次更新日期删除重复值 SQL

Removing Duplicated Values Based on Lastupdated Date SQL

我正在尝试删除我们数据库中的重复案例。 有3个字段:ProjectID,ClientID,LastVerified.

我们的一个应用程序出现问题,它创建了多个新的 ProjectID

我想做的是删除重复项,只保留上次验证的行。 例如:

    ProjectID   ClientID    LastVerified
     20773        336106    2016-07-29 01:38:37.450
     20869        336106    2016-08-23 11:19:51.153

这里我想保留上次验证的第二行。

我正在使用 SQL 数据库 任何帮助,将不胜感激 谢谢

如果存在具有相同 ClientID 的新行,则删除一行:

delete from tablename t1
where exists (select * from tablename t2
              where t2.ClientID = t1.ClientID
                and t2.LastVerified > t1.LastVerified)
WITH CTE AS(
   SELECT [col1], [col2], [col3], [col4], [col5], [col6], [col7],
       RN = ROW_NUMBER()OVER(PARTITION BY col1 ORDER BY col1)
   FROM dbo.Table1
)
DELETE FROM CTE WHERE RN > 1

你可以这样做:

DELETE X FROM
(
     SELECT *, ROW_NUMBER() OVER (PARTITION BY ClientID ORDER BY LastVerified DESC) R
     FROM @t
) X
WHERE R!=1

这对你有帮助,max(projectid) 有助于找到最后验证的。 所以查询变得简单

DELETE FROM TABLE1 WHERE PROJECTID NOT IN 
(SELECT MAX(PROJECTID) FROM TABLE1 GROUP BY CLIENTID)