我希望标题不是太模糊或混乱,但我还没有找到一个解决方案,可以帮助我。
我有一个数据集,我们在网站上记录一个客户的自助服务。客户将启动自助服务(例如升级我的订阅),其中的数据将记录他们到达的每一步,直到他们希望完成自助服务。对于每个自助服务会话,都会有一个启动标记,然后是客户完成的标记步骤。如果客户一次性完成自助服务,它可能如下所示:

在这里,ID是customer ID (不是会话ID)、步骤的时间戳以及客户在时间戳上到达的步骤。如果客户由于某种原因(会话超时、客户出错或类似情况)重新启动,自助服务将重新启动,数据如下所示:

我需要的是创建一个新列,将步骤分组为假设的会话(启动的自助服务没有会话I)。如果有一个新的Start标记,则假定这是一个新会话。例如,上述数据可能如下所示:

有人能帮上忙吗?
发布于 2021-04-08 09:28:30
这只是一个有窗口的条件聚合:
COUNT(CASE Label WHEN 'Start' THEN 1 END) OVER (PARTITION BY ID ORDER BY TimeStamp
ROWS BETWEEN UNBOUNDED PRECEEDING AND CURRRENT ROW) AS Sessionhttps://stackoverflow.com/questions/67001106
复制相似问题