【发布时间】:2018-04-10 11:20:11
【问题描述】:
我想知道是否有人可以帮助我。 我已经设法只插入不重复的行
NSERT INTO temp_Log
SELECT dq1.RowID,dq1.Action FROM DQLog dq1
WHERE dq1.RowID
NOT IN (SELECT RowID FROM DQLog dq2
group by dq2.RowID
having count(*)>1
我仍然需要过滤重复的... 如何通过比较同一表中重复行之间的值来选择一行?
RowID Action
1 Reject
1 Allow
2 Allow
2 Fix
在这种情况下,我只需要插入第一行 (reject+allow= Reject) 和最后一行 (Allow+Fix = Fix)。
感谢大家的宝贵时间。
【问题讨论】:
-
Action是否存在其他组合?例如reject+fix或其他什么? -
我有 3 个操作(拒绝、允许、修复)但是拒绝将否决所有并修复否决允许,如果 2 行有“允许”,那么我可以选择其中一个。
-
当 a
RowID将Reject和Fix作为操作时会发生什么?这是一个可能的场景吗?如果是,那么应该插入哪个动作? -
这只是 dqlog 表。一旦 dqlog 表完成,合并将处理正确的操作。现在的操作只是以后的标志。
-
好的。但假设 RowId 3 有 t 个操作。1)拒绝和 2)修复。在这种情况下,应该与 RowId 3 一起插入哪个 Action?拒绝还是修复?
标签: mysql sql insert duplicates data-warehouse