我有一個大約315,000條記錄的數據庫,它跨越了幾個星期,每5秒記錄一次。在我的數據庫中,我有一個同時發生的事件(儀器校準),每天都在發生(比如上午6點)。我試圖找到一種方法將校準因子應用於周圍的記錄。如何在sqlite中在幾天內更新數據
我有朱利安日(一年中的某一天是實際值),光子,時間(H:M:S)和流逝的時間(以秒爲單位,小時的幾分之一)的列。
到目前爲止,我曾嘗試:
cur.execute("UPDATE Conc SET Calfactor =(SELECT AVG(Photon) FROM Conc WHERE trim(hms)
BETWEEN '06:03:00' AND '06:06:00' GROUP BY JulianDay)
WHERE trim(hms) BETWEEN '05:00:01' AND '07:00:00';")
子選擇,如果自身的執行,將成功地拉在所有天均線的列表。我的問題是,當我嘗試將這個列表應用到周圍時間時,我無法得到它匹配的一天。 SQLite希望將它計算的第一個值應用於所有日子。當然,嘗試應用GROUP BY或ORDER BY JulianDay會引發錯誤。任何有識之士將不勝感激
爲什麼不只是拉列表,然後做第二個sqlite executemany命令來更新值?這似乎會更容易(我不喜歡龐大的複雜的SQL查詢自己...太容易出錯,難以調試imho) –
感謝您的建議。當我需要優化我的程序時,我會嘗試。 – user3037488