1

我有一个包含访问日志记录的表,我想知道访问的平均时间。我正在使用带有 JDBC 的 sqlite 来填充表。该表可能有几亿行大。我没有太多的 SQL 经验。

该表与此类似:

ID   Name      Time(s)
1    Apricot   100
2    Apricot   101
3    Banana    102
4    Banana    102
5    Banana    105
6    Apricot   106
7    Apricot   300
8    Cake      300
9    Banana    310
10   Banana    320

我想查看每次访问的持续时间。一次访问是当一个条目出现并继续出现(具有相同的名称)直到经过一段时间(比如 100 秒)。之后,会话结束 - 如果再次出现相同的名称,则它是一个新会话。

最终,我想绘制访问次数及其持续时间的图表。

我不确定哪种输出最简单,但这里有一个可能有用的输出:

Name       Time
Banana     3     (row5 - row3)
Apricot    6     (row6 - row1)
Apricot    0     (row7 - last visit is >100s and no more subsequent visits)
Cake       0     (row8 - last visit is >100s and no more subsequent visits)
Banana     10    (row10 - row9)

(此外,显示 ID - 这可能是访问开始或结束的 ID)

如何使用 SQL 来做到这一点?

此页面:根据 SQL 时间戳确定用户访问的长度 有一个与我类似的问题,但我并不真正理解答案,它对我也不起作用(我的数据库浏览器冻结)。

4

0 回答 0