计算每个每日活跃用户的平均会话长度?
Calculate average session length per daily active user?
我是 SQL 的新手,我正在努力解决我练习中的一个问题。我将如何计算每个每日活跃用户的平均会话长度?显示的 table 只是扩展 table 的示例。想象一下加载更多行。
我只是用这个查询来计算每日活跃用户:
SELECT COUNT (DISTINCT user_id)
FROM table1
欢迎来到 Whosebug!
现在,你的问题:
How would I calculate average session length per daily active user?
您已经有了会话时间,使用 AVG 函数您将得到所有
的简单平均值
select AVG(session_length_seconds) avg from table_1
但是你想要每天...所以你需要按天来思考,那么你是如何得到这一天的呢?你有一个 activity_date
作为日期条目,很容易从中提取日、月和年,例如
select
DAY(activity_date) day,
MONTH((activity_date) month,
YEAR(activity_date) year
from
table_1
将在您可以使用的列中分解日期字段...
现在,回到你的问题,它指出 每日活跃用户 ,但你所拥有的只是会话,一个用户可以有多个会话,所以我不知道,从你分享的上下文,你是如何处理的,并为每个会话制作平均值,作为要检索的数据没有意义,我只是假设,并提供这个答案只是为了让你开始,你想要 仅平均每天
了解如何获得平均值后,让我们创建一个包含所有这些的查询:
select
DAY(activity_date) day,
MONTH((activity_date) month,
YEAR(activity_date) year,
AVG(session_length_seconds) avg
from
table_1
group by
DAY(activity_date),
MONTH((activity_date),
YEAR(activity_date)
将输出每个 day/month/year
的 session_length_seconds
的平均值
group by
部分,您需要在 select
中拥有尽可能多的字段,但不进行任何计算,例如 sum
、count
,等等...在我们的例子中 avg
进行计算,所以我们不想按该值分组,但我们确实想按其他 3 个值分组,所以我们有 3 列,分别是日、月和年。如果您愿意,也可以使用 concat
将日、月和年连接成一个字符串...
我是 SQL 的新手,我正在努力解决我练习中的一个问题。我将如何计算每个每日活跃用户的平均会话长度?显示的 table 只是扩展 table 的示例。想象一下加载更多行。
我只是用这个查询来计算每日活跃用户:
SELECT COUNT (DISTINCT user_id)
FROM table1
欢迎来到 Whosebug!
现在,你的问题:
How would I calculate average session length per daily active user?
您已经有了会话时间,使用 AVG 函数您将得到所有
的简单平均值select AVG(session_length_seconds) avg from table_1
但是你想要每天...所以你需要按天来思考,那么你是如何得到这一天的呢?你有一个 activity_date
作为日期条目,很容易从中提取日、月和年,例如
select
DAY(activity_date) day,
MONTH((activity_date) month,
YEAR(activity_date) year
from
table_1
将在您可以使用的列中分解日期字段...
现在,回到你的问题,它指出 每日活跃用户 ,但你所拥有的只是会话,一个用户可以有多个会话,所以我不知道,从你分享的上下文,你是如何处理的,并为每个会话制作平均值,作为要检索的数据没有意义,我只是假设,并提供这个答案只是为了让你开始,你想要 仅平均每天
了解如何获得平均值后,让我们创建一个包含所有这些的查询:
select
DAY(activity_date) day,
MONTH((activity_date) month,
YEAR(activity_date) year,
AVG(session_length_seconds) avg
from
table_1
group by
DAY(activity_date),
MONTH((activity_date),
YEAR(activity_date)
将输出每个 day/month/year
的session_length_seconds
的平均值
group by
部分,您需要在 select
中拥有尽可能多的字段,但不进行任何计算,例如 sum
、count
,等等...在我们的例子中 avg
进行计算,所以我们不想按该值分组,但我们确实想按其他 3 个值分组,所以我们有 3 列,分别是日、月和年。如果您愿意,也可以使用 concat
将日、月和年连接成一个字符串...