我正在開(kāi)發(fā)一個(gè)系統(tǒng),其中用戶引入 SQL 服務(wù)器/數(shù)據(jù)庫(kù)連接和有效的 SQL 查詢,并將其保存在我的系統(tǒng)上。我正在使用 python+sqlalchemy+pandas 來(lái)完成此任務(wù)。該查詢將返回一個(gè)像這樣的表,其中唯一的規(guī)則是查詢結(jié)果必須具有一個(gè)timestamp日期時(shí)間字段和至少另一列包含數(shù)值但名稱(chēng)隨機(jī)的列。+-----------+----------+---------+-----+---------+| timestamp | series_1 | serie_2 | ... | serie_n |+-----------+----------+---------+-----+---------+| <time> | numeric | numeric | ... | numeric |+-----------+----------+---------+-----+---------+| ... |+-----------+----------+---------+-----+---------+| <time> | numeric | numeric | ... | numeric |+-----------+----------+---------+-----+---------+然后我有一個(gè)使用 cron 格式運(yùn)行查詢的調(diào)度程序,我處理數(shù)據(jù)并將其存儲(chǔ)在我的系統(tǒng)數(shù)據(jù)庫(kù)中。問(wèn)題是,每次我使用調(diào)度程序運(yùn)行查詢時(shí),我都會(huì)有舊的+新的記錄,為了處理這個(gè)問(wèn)題,我使用 pandas 過(guò)濾結(jié)果以僅獲取新記錄,此時(shí)性能還可以(20s)對(duì)于 20 個(gè)系列的 10k 條記錄,考慮每周更新 1 次是合理的),但對(duì)于長(zhǎng)時(shí)間有大量數(shù)據(jù)的情況來(lái)說(shuō),這不是一個(gè)好的解決方案。因此,我正在考慮是否可以使用 WHERE 子句包裝用戶查詢結(jié)果,以在查詢級(jí)別過(guò)濾結(jié)果timestamp,而不觸及查詢。
SQL 將 where 子句應(yīng)用于任意查詢結(jié)果
料青山看我應(yīng)如是
2023-09-26 14:21:17