一千萬個為什麽

搜索

如何在SQLite中生成時間間隔查詢?

我有一個基於事件的表,我希望根據發生的事件數量逐個生成查詢。

例如,我有一個事件表,如:

CREATE TABLE events (
     session_id  TEXT,
     event       TEXT,
     time_stamp  DATETIME
)

我已經轉換成以下類型的表格:

CREATE TABLE sessions (
     session_id    TEXT,
     start_ts      DATETIME,
     end_ts        DATETIME,
     duration      INTEGER
);

現在我想創建一個查詢,按照在特定分鐘內處於活動狀態的計數對會話進行分組。在那裏我基本上可以找回像這樣的東西:

TIME_INTERVAL ACTIVE_SESSIONS
------------- ---------------
18:00         1
18:01         5
18:02         3
18:03         0
18:04         2

最佳答案

這不完全是你的問題,但我認為它可以幫助。你看過SQLite R-Tree模塊嗎?這將允許您在開始/停止時間創建一個虛擬索引:

CREATE VIRTUAL TABLE sessions_index USING rtree (id, start, end);

然後你可以通

SELECT * FROM sessions_index WHERE end >=  AND start <= ;

轉載註明原文: 如何在SQLite中生成時間間隔查詢?