我想根据另一列的数据从列中选择重复数据。例如,我有一个“IN_PROGRESS”或“COMPLETE”事件表。他们每个人都有一个ID。一些事件具有相同的ID但状态不同。 我想选择status = in_progress或status = complete的数据,但前提是它们的id相同。Oracle sql - 根据另一个字段在列中查找重复值
这是我迄今为止尝试:
SELECT id, count (*)
FROM events WHERE status = 'IN_PROGRESS' OR status = 'STARTED'
GROUP BY id HAVING count (*) > 1;
但很明显,它只返回的ID,而不是整个行,所以我不能看到所有的数据。最终,我打算选择表中的所有数据,同时根据上述过滤出重复项。
我已经开始研究一个联接或者与一个重复的表进行比较,但是我不确定什么是实现我所需要的最佳方式。有人可以帮忙吗?
感谢
除了'status',所有其他字段都有相同的值,如果'id'是相同的? – Cynical
这与MySQL有什么关系?我正在用SQL标记替换MySQL标记。 –
我不知道它是如何发生的,你有重复。你有一个事件表,所以每个记录应该代表一个事件。你的活动由ID标识,那么如何重复?为什么ID不是表的主键? –