我有一张表,其中包含用户,他们访问过的页面,会话ID以及他们在每个页面上花费的时间。
session_id | talentnum | page_name | time
008873e0 | user1 | test.php | 1311630222
008873e0 | user1 | test.php | 1311630215
008873e0 | user1 | index.php | 1311630222
008873e3 | user2 | test.php | 1311630216
008873e3 | user2 | index.php | 1311895032
如何找到用户在每个会话上花费的时间
我想我应该找到用户在会话中每个页面花了多少然后添加时间?我有点困惑
修改。时间是他们进入该页面的时间()
任何想法? 感谢
答案 0 :(得分:3)
这应该有效:
select distinct(session_id), max(time) - min(time) from test group by session_id
然后按session_id分组。要按用户分组:
select distinct(talentnum), max(time) - min(time) from test group by talentnum
答案 1 :(得分:2)
首先,获取访问者列表:
SELECT DISTINCT( sesssion_id ) as session FROM _yourTable_;
然后执行另一个查询以获取每次访问的开始和结束时间:
SELECT MIN(time) as START_TIME, MAX_TIME(time) as END_TIME WHERE session_id = '$desired_session';
然后,通过PHP检索结果并从结束时间中减去开始时间以获得访问的总长度。