Wenn Sie den Clob hashen, können Sie ihn in einer Unterabfrage verwenden, um die maximale Rowid für jede eventid_nbr mit demselben Clob-Hashwert abzurufen. Dann filtern Sie einfach Ihre relation_two-Tabelle in der where-Klausel.
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);
Die 3 im HASH spezifiziert SHA, aber Sie können auch MD4 (1) oder MD5 (2) verwenden, wenn Sie möchten.
Ich denke, das könnte sehr langsam sein, wenn Sie viele Zeilen in der Tabelle RELATION_TWO haben, und ich bin sicher, dass dies geschrieben werden kann, um eine bessere Leistung zu erzielen, aber das Konzept ist solide.