Nếu bạn băm clob, bạn có thể sử dụng nó trong một truy vấn con để lấy rowid tối đa cho mỗi eventid_nbr có cùng giá trị băm của clob. Sau đó, bạn chỉ cần lọc bảng Relations_two của mình trong mệnh đề where.
SELECT EVENTID_NBR, INPUT_ARGS
FROM RELATION_ONE, RELATION_TWO
WHERE RELATION_ONE.LOGID_NBR = RELATION_TWO.LOGID_NBR AND
EVENTID_NBR BETWEEN 143 AND 192 AND
EVENTID_NBR != 172 AND SYSDATE - 7 >= RELATION_ONE.LAST_UPDATED
AND (RELATION_TWO.EVENTID_NBR, RELATION_TWO.ROWID) IN
(SELECT DISTINCT EVENTID_NBR,
MAX(ROWID) OVER (PARTITION BY EVENTID_NBR, DBMS_HASH(INPUT_ARGS,3))
FROM RELATION_TWO);
3 trong SHA được chỉ định HASH, nhưng bạn cũng có thể sử dụng MD4 (1) hoặc MD5 (2) nếu bạn muốn.
Tôi nghĩ rằng điều này có thể rất chậm nếu bạn có nhiều hàng trong bảng RELATION_TWO và tôi chắc chắn rằng điều này có thể được viết để hoạt động tốt hơn, nhưng khái niệm là âm thanh.