您可以按CertID和DueDate对数据进行排序,以消除多余的行。
DECLARE @T TABLE (ID INT,CertID INT, DueDate DATE)
INSERT INTO @T(ID,CertID,DueDate) SELECT 676790,48983,'2018-05-03'
INSERT INTO @T(ID,CertID,DueDate) SELECT 678064,48983,'2018-05-02'
INSERT INTO @T(ID,CertID,DueDate) SELECT 678086,48983,'2018-05-01'
INSERT INTO @T(ID,CertID,DueDate) SELECT 678107,48983,'2018-05-01'
INSERT INTO @T(ID,CertID,DueDate) SELECT 678061,48983,'2018-05-01'
DELETE t
FROM @T t
INNER JOIN (
SELECT
*
,Row_number() OVER(PARTITION BY CertID,DueDate ORDER BY ID ASC) AS [Row]
FROM @T
) Ordered ON Ordered.ID=t.ID
WHERE [Row]<>1
SELECT * FROM @T