2012-12-30 94 views
1

我是一個完整的新手,因此無法通過查看過去的帖子找到解決方案。我有一個地理數據庫(ESRI ArcMAP,大約70k條記錄),其中包含從兩個數據庫中合併的道路殺死數據。查找近似重複查詢

Ex。

Date_, Route, MilePost, Database 

10/1/2012, ML34, 113, Animal_Vehicle 

10/2/2012, ML34, 113.4, Carcasses 

10/2/2012, ML16, 86, Carcasses 

我想清理兩個數據庫之間的重複記錄。 MilePostRouteDate_的記錄已被刪除。問題是這樣的:Animal_Vehicle可以在任何時間或一週中的某一天記錄衝突,而來自Carcasses數據庫的記錄僅在正常工作時間記錄。因此,在前一天或週末過後的幾小時內由Animal_Vehicle記錄的屍體重複產生。然後在第二天早上或在星期一(或假期週末時的星期二)將記錄複製Carcasse。另一個問題是Animal_Vehicle MilePosts傾向於四捨五入到最接近的半英里,而Carcasses MilePosts更精確。

的目標是建立一個查詢或算法返回兩個Database值之間配對的記錄,因此當Database=Carcasses,該查詢返回記錄與Database=Animal_Vehicle,其中MilePost是+/-的Carcasses紀錄的0.4, Date_Carcasses記錄的最後四天內。它會返回示例數據的前兩行。

任何反應非常感謝!謝謝!

+0

查看http://code.google.com/p/google-refine/,可能它對您的任務很有用。 – AndreKR

+0

這是一個有趣的鏈接,謝謝! – user1938198

回答

1

這僅僅是一個奇特的加入:

select * 
from Carcasses c full outer join 
    Animal_Vehicle av 
    on c.date between av.date and av.date+3 and 
     abs(c.Milepost - av.Milepost) < 0.5 and 
     c.route = av.route 

on子句根據您的描述的條件。這不太可能是一個非常快的查詢。而且,我假設您正在使用數據庫,您可以使用「+3」將日期添加到日期 - 這取決於數據庫。

+0

感謝您的迴應!我意識到執行此操作的方式必須通過ArcMAP的命令行,它是python並且不支持SQL。它看起來像是正確的概念,所以我只需要弄清楚如何將它翻譯成python。再次感謝! – user1938198