Postgresql 研究生漏斗分析(花费的时间)

Postgresql 研究生漏斗分析(花费的时间),postgresql,Postgresql,我有一张这样的桌子: id visited_time page visitor_id 1 2019-04-29T10:44:53.847014+02:00 1 1 2 2019-04-29T10:46:53.174894+02:00 1 3 3 2019-04-29T10:49:44.000390+02:00 2 1 18 2019-04-29T10:52:46.574140+02:00 2

我有一张这样的桌子:

id  visited_time                        page visitor_id 
1   2019-04-29T10:44:53.847014+02:00    1   1
2   2019-04-29T10:46:53.174894+02:00    1   3
3   2019-04-29T10:49:44.000390+02:00    2   1
18  2019-04-29T10:52:46.574140+02:00    2   3
19  2019-04-29T10:52:58.158146+02:00    3   1
20  2019-04-29T10:53:27.402038+02:00    1   9
25  2019-04-29T10:55:18.275441+02:00    2   9
54  2019-04-29T11:10:01.818343+02:00    1   13
72  2019-04-29T11:40:28.056813+02:00    2   13
访问者也将从第1页转到第2页,再转到第3页,以此类推,但可能会中途退出。我想找出在每一页上花费的平均时间。从逻辑上讲,这是唯一访客id访问第1页和第2页之间的区别,以此类推

在postgres中有没有一种聪明的方法可以做到这一点?

给你:

选择 页 avgvisited_time_下次访问时间 从…起 选择 页 在美国时间, -某个访问者查看下一页的时间。。。 按访客id划分的leadvisited\u时间按访客时间排序为visited\u时间\u next 来自访问_so_56097366 作为tmp 按页分组 按页排序; 在线示例:

还请确保您有一个关于访问者id和访问时间的索引,否则,对于大量中间行,您将得到非常昂贵的排序: