我试图使用自连接来编写SQL代码,但我不知道出了什么问题:
SELECT a.user_id,
a.visit_dt
FROM dataset1 a
JOIN dataset1 b ON a.user_id = b.user_id
AND abs(datediff(day, a.visit_dt, b.visit_dt)) < 60;
新数据集应仅包含一个用户ID及其第一次访问的列表
[JOIN
就像俄罗斯的俄罗斯套娃,您需要做A B B A(与A B A B相反)。
使用lead()
和其他窗口功能:
使用row_number()
窗口功能获取每个用户的前两次访问,然后按用户分组并在having
子句中设置条件,以使这两次访问的相差少于60天: