我有一个包含访问日志记录的表,我想知道访问的平均时间。我正在使用带有 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 时间戳确定用户访问的长度 有一个与我类似的问题,但我并不真正理解答案,它对我也不起作用(我的数据库浏览器冻结)。