【发布时间】:2018-11-15 08:52:24
【问题描述】:
我有一个包含 3 个字段的表:user_id、页面和时间戳,如下所示:
user_id page timestamp
1234567 home.all 2018-03-01 00:10
7541231 task.now 2018-03-01 03:51
7541231 home.all 2018-03-01 03:53
4544731 talk.wow 2018-03-01 04:56
4544731 task.now 2018-03-01 05:01
4544731 home.all 2018-03-01 05:02
4544731 bla.home 2018-03-01 05:26
4544731 home.all 2018-03-01 06:40
时间戳是具有给定 ID 的用户在网站上加载给定页面的时间。每个观察结果都是一次网页浏览命中。
我需要为每个观察分配一个会话 ID。每个会话的每个会话 id 应该是唯一的,其中一个会话是一组综合浏览量,其中最接近彼此的时间戳的时差不超过 3600 秒,发生在 相同的 user_id .
结果应该是这样的:
user_id page timestamp session_id
1234567 home.all 2018-03-01 00:10 1234567-2018030100100010
7541231 task.now 2018-03-01 03:51 7541231-2018030103510353
7541231 home.all 2018-03-01 03:53 7541231-2018030103510353
4544731 talk.wow 2018-03-01 04:56 4544731-2018030104560526
4544731 task.now 2018-03-01 05:01 4544731-2018030104560526
4544731 home.all 2018-03-01 05:02 4544731-2018030104560526
4544731 bla.home 2018-03-01 05:26 4544731-2018030104560526
4544731 home.all 2018-03-01 06:40 4544731-2018030106400640
请您对此提出任何疑问吗?
【问题讨论】:
标签: sql postgresql timestamp sessionid pageviews