我正在使用SQL,我有三列 user_id,user_action和timestamp ,它们将时间戳应用于5种不同类型的用户操作,编号为1到5。
在几年的时间里,我有数千个user_id和操作。 Example of Raw Data
Caius Jard在评论中提供的代码适用于此部分。
DATEPART(week, timestamp) as week
插入此代码,并使用它根据周数和time_difference创建两周移动平均值。
答案 0 :(得分:0)
这不是整个问题的完整答案。这是步骤1的存根:
SELECT
user,
MAX(CASE WHEN action = 2 THEN action END) as action2,
MAX(CASE WHEN action = 5 THEN action END) as action5,
DATEDIFF(
MAX(CASE WHEN action = 2 THEN action END),
MAX(CASE WHEN action = 5 THEN action END)
) as days_between
FROM t
WHERE action in (2,5)
GROUP BY user
尽管这不会计算您的减列-我不确定是什么数据类型的时间戳,是否可以进行任何直接数学运算,或者是否需要转换的字符串。如果您可以将此详细信息添加到您的q中,它将有所帮助(或发表评论)
我不容易理解您的第2步,请通过提供预期结果来增强您的q