我在Oracle數據庫中有一個表,用於存儲用戶上傳的事務批處理。新的上傳機制已經實施,我想比較其結果。使用原有機制,然後使用新機制上傳單個批次。我試圖找到唯一的行(第一個上載中存在的I行不存在或第二個上載不同,或者第一個上載中不存在但第二個存在或不同的行)。我正在處理一個龐大的數據集(超過一百萬條記錄),這使得這種分析非常困難。包含在一個表中的重複數據中的唯一行
我嘗試了好幾種方法:
SELECT col1, col2 ...
FROM table
WHERE upload_id IN (first_upload_ID, second_upload_id)
GROUP BY col1, col2..
HAVING COUNT(*) = 1;
SELECT col1, col2 ...
FROM table
WHERE upload_id = first_upload_ID
MINUS
SELECT col1, col2 ...
FROM table
WHERE upload_id = second_upload_id;
SELECT col1, col2 ...
FROM table
WHERE upload_id = second_upload_id
MINUS
SELECT col1, col2 ...
FROM table
WHERE upload_id = first_upload_ID;
這兩種結果返回幾十萬行,因此很難分析。
有沒有人如何處理/簡化這個問題的任何建議?我可以在每個上傳的獨特列上進行自我加入嗎?如果是,那麼這個自我加入會是什麼樣子?
謝謝你的幫助。
你能提供你的表格結構和可能的一些樣本數據與預期的結果嗎? – sgeddes
Oracle版本?每次上傳是否存在唯一的密鑰,您可以使用這些密鑰來關聯負載之間的記錄? –
@DavidAldridge Oracle v9.1有幾個(大約7個)字段可用作複合唯一鍵(這意味着它們在99%的時間內每次上傳都是唯一的。 – Zzz