我有一個包含通話記錄的表。有時,2個記錄被創建爲一個單一的電話。我有一個過程來比較呼叫時間(call_date),呼叫持續時間(持續時間),源號碼(src)和目的地號碼(dst)。如果所有4個字段完全匹配,則除一條記錄以外的所有字段都將被刪除當時間戳或數字不完全匹配時,刪除基於時間戳和數字的重複記錄
匹配src和dst是沒有問題的。但是,有時call_date會關閉1-2秒,或者持續時間會關閉幾分之一秒,從而防止重複被刪除。有時持續時間會縮短几毫秒,這也會阻止重複被刪除。
此外,持續時間是一個數字字段,以秒爲單位進行計算,並保留至小數點後3位。我可以將持續時間調整到最接近的秒數來捕捉很多重複記錄,但是如果一個記錄的持續時間是10.454秒而另一個記錄的是10.513,那麼它將分別舍入到10和11。我不能使用樓層或天花板功能,因爲在持續時間爲10.918和11.142秒時,我會遇到類似的問題。
所以我有數字和時間戳字段,即使它們是真正重複的記錄,也可以關閉一點點。有沒有辦法在查詢中添加一些「模糊空間」以在持續時間和時間戳的1秒差異內查找重複內容?
也許會更容易不允許被記錄開始重複的電話? – McCee
是的,我已經嘗試了這種方法,但至少在6個月內不可能在源頭上防止它。這與在語音服務器之間遷移客戶以及同時在舊服務器和新服務器之間路由呼叫有關。不是我的區域。 – rawk
使用DATEDIFF(seconds,column1,column2)> 1'作爲日期列,並且'(duration1 - duration2)> 1'在這段時間內(注意:如果任一個持續時間可以是更大的值,加上'OR(duration2 - duration 1)> 1')。 – Turophile