gpt4 book ai didi

mysql - 带减法的 SQL 数据透视表

转载 作者:行者123 更新时间:2023-11-29 16:26:03 25 4
gpt4 key购买 nike

我正在使用 SQL,并且有三列 user_id、user_action 和 timestamp,它们将时间戳应用于编号为 1 到 5 的五种不同类型的用户操作。

在几年的时间里,我有数千个用户 ID 和操作。 Example of Raw Data

  1. 首先,我需要创建一个数据透视表,其中包含来自只有两个 user_actions,按 user_id 分组,然后创建一个减去时差的全新列 - 称之为time_difference 列。

Caius Jard 在评论中提供的代码适用于此部分。

  • 现在,我需要添加另一列周数(TIMESTAMP 为 DATETIME2 格式,因此我需要合并
  • DATEPART(week, ti​​mestamp) as week 插入此代码,并使用它根据周数和 time_difference 创建两周移动平均值。

    最佳答案

    这并不是整个问题的完整答案。这是第 1 步的 stub :

    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

    关于mysql - 带减法的 SQL 数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54230041/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com