我想根據另一列的數據從列中選擇重複數據。例如,我有一個「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不是表的主鍵? –