我要做的是获得平均的page_visit_duration但是对于某些行具有相同的session_id,任何具有重复会话ID的行只意味着访问者访问了具有相同session_id的那些行的多个页面我需要添加在获得在网站上花费的平均时间之前,他们访问过的所有页面的总page_visit_duration,我怎么能这样做,我搜索了一下,我找不到任何东西。
这是我尝试的查询:
select avg(page_visit_duration) as avgtime from page_views
select avg(page_visit_duration) as avgtime from page_views group by `session_id`
请注意第二个查询会返回许多结果,我需要它才能返回1个平均值
我要做的是获得每位访问者在我们网站上花费的平均时间。
答案 0 :(得分:1)
您需要先对结果进行分组,然后取平均值。
SELECT avg(total_duration) as avgtime FROM
(SELECT sum(page_visit_duration) as total_duration, session_id FROM page_views group by session_id) sq
答案 1 :(得分:0)
另一种方法是计算总时间量并除以会话数:
select sum(page_visit_duration) / count(distinct session_id) as avgtime
from page_views
group by `session_id`;