如何获得首次访问后60天内访问过一次网站的用户

问题描述 投票:0回答:3

我试图使用自连接来编写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及其第一次访问的列表

sql
3个回答
0
投票

[JOIN就像俄罗斯的俄罗斯套娃,您需要做A B B A(与A B A B相反)。


0
投票

使用lead()和其他窗口功能:


-1
投票

使用row_number()窗口功能获取每个用户的前两次访问,然后按用户分组并在having子句中设置条件,以使这两次访问的相差少于60天:

© www.soinside.com 2019 - 2024. All rights reserved.