2016-06-13 45 views
-4

我有一個問題:只保持最低爲每5秒前值的重複數據刪除功能

寫的重複數據刪除功能,僅保持最低爲每5秒前值

0.0 (keep) 
2.3 (drop) 
4.1 (drop) 
5.3 (keep) 
7.5 (drop) 
8.3 (drop) 
10.2 (drop) 
11.4 (keep) 

我如何儘快地使用sql和Python?

請考慮這僅僅是一列或一組值中的一些值。

我嘗試這樣做:

def de-dup(a): 
    output_array=[] 
    c=0 
    d=a[c] 
    while (d<=a[len(a)-1]): 
     if a[c]<=d: 
     output_array.append(a[c]) 
     c+=1 
     d=a[c]+5 
    return output_array 

我們能做到這一點的SQL。我想我們可以,如果我們可以得到累積的價值總和,但只有從以前的價值,然後檢查累計與當前值和下降。

聽起來怎麼樣?

+0

讓我們看看你已經嘗試了什麼。我們在這裏提供幫助,但我們不會爲您編寫代碼。 –

+0

您的示例顯示了值,但不是時間。你如何得到這些信息? SQL如何適應這一點? –

+0

什麼是您正在尋找的示例輸出?突出顯示的數據是否在數據庫中可用? – kvivek

回答

0

我知道你有什麼樣的數據。
您可以將創建時間的數據添加到列表中,而不是將最新的項目與新項目進行比較。

keepLst = [] 
if not keepLst: 
    keepLst.append(item) 
else: 
    if item.created_time() - keepLst[-1].created_time() > 5: 
    keepLst.append(item) 


你可以把你的程序5秒睡,然後開始接收數據,一旦得到一個數據睡眠再次