用户活动- SQL查询



我需要一些帮助来编写一个SQL查询

数据如下:应用程序使用数据保存在下表中:表会话:Id, userId, duration, data_timestamp

我试图写一个查询,选择userId和平均会话持续时间为每个"好用户">

  • 良好用户:平均每周至少有4次会话的用户

我试着写下面的查询,但我仍然错过了很多点

SELECt avg_sessions
FROM (
SELECT
S1.userid,
COUNT(distinct id) as num_sessions
FROM
sessions
WHERE data_timestamp BETWEEN DATE_SUB(data_timestamp, INTERVAL 7 DAY)
GROUP BY userid) as cte

的例子:对于以下数据:样本数据

我们得到以下分析:分析

,最终结果为:结果

可以这样做。我使用week_dt列将日期组合在一起。然后选择在一周内至少有5次会话的用户。

SELECT
S1.userid,
DATE_SUB(data_timestamp, INTERVAL WEEKDAY(data_timestamp) DAY) as week_dt,
COUNT(distinct id)/7 as num_sessions
FROM
sessions
GROUP BY userid
HAVING COUNT(distinct id)/7>=5

相关内容

  • 没有找到相关文章

最新更新