会话划分:Session 切割分析
窗口函数CASE WHEN日期函数用户行为分析路径分析
题目描述
给定一张 page_views 表,记录用户浏览页面的日志:
id: 记录IDuser_id: 用户IDpage: 页面名称view_time: 浏览时间(格式: YYYY-MM-DD HH:MM:SS)
会话(Session)定义:同一用户两次浏览之间间隔超过 30 分钟则视为新的会话。请计算每个用户的每个会话的页面浏览数、会话开始时间和结束时间。
期望输出列
| 列名 | 说明 |
|---|---|
| user_id | 用户ID |
| session_id | 会话序号 |
| page_count | 页面浏览数 |
| session_start | 会话开始时间 |
| session_end | 会话结束时间 |
数据样例
| idPKINTEGER | user_idINTEGER | pageTEXT | view_timeTEXT |
|---|---|---|---|
| 1 | 1 | 首页 | 2024-03-01 09:00:00 |
| 2 | 1 | 列表页 | 2024-03-01 09:05:00 |
| 3 | 1 | 详情页 | 2024-03-01 09:12:00 |
| 4 | 1 | 首页 | 2024-03-01 10:00:00 |
| 5 | 1 | 搜索页 | 2024-03-01 10:10:00 |
| 6 | 2 | 首页 | 2024-03-01 14:00:00 |
| 7 | 2 | 列表页 | 2024-03-01 14:20:00 |
| 8 | 2 | 详情页 | 2024-03-01 14:25:00 |
输入数据显示 8 / 11 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里