我有一个大约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