SQL重复条目(有停电)

时间:2014-04-01 09:40:10

标签: sql duplicates

我对SQL并不陌生,但是我得到了停电和我尝试的任何建议,在SO或其他任何地方,我要么搞砸了,要么没有得到任何结果。

我将描述我的情况。

我的DB称为PCR

它有一个RelationID,它是GUID表单中的主键

示例:{4EB31301-FF42-4045-9A04-000490AF3C35} 它有一个ConID和一个ProID作为GUID以及一个INT。

RelationID始终不同。

RelationID; ConID; ProID; INT;

XYZ; 123; 456; 4;

XZY; 123; 456; 8;

YXZ; 123; 456; 16;

例如它的样子。

现在我必须删除INT 8和INT 16

的行

我无法使用" DELETE XZY FROM X WHERE D = Z"因为我需要删除行中ConID和ProID相同的每一行,但我需要保留行中INT最低的行。

编辑:但是还有其他ProID和ConID有多个条目和不同的INT。除了具有最低INT的那个之外,还必须删除它们。

我和Count和GROUP BY一起玩,但我总是搞砸了:/

希望有人能再次让我回到路上。

提前致谢!

祝你好运

.c0dy

1 个答案:

答案 0 :(得分:0)

前一段时间有过类似的问题。

; WITH cte AS (
    SELECT RelationID, ROW_NUMBER() OVER (PARTITION BY ConID, ProID ORDER BY [INT]) AS rnum
    FROM YourTable
)
DELETE FROM YourTable 
WHERE RelationID in (SELECT RelationId FROM cte WHERE cte.rnum > 1)

CTE需要以分号开头。

编辑 - 更正了语法错误。