【发布时间】:2019-04-13 00:06:29
【问题描述】:
我试图确定客户在一个日历周内何时未登录,他们最后一次登录是什么时候。起始数据集如下所示:
User_Name Login_Date Week_Ending
Bobisaur 1/1/2019 1/5/2019
Bobisaur 1/3/2019 1/5/2019
Bobisaur 3/5/2019 3/9/2019
Bobisaur 3/24/2019 3/30/2019
Bobisaur 4/1/2019 4/6/2019
现在以1/12/2019 等结束的那一周,客户Bobisaur 将无法登录我想要做的是最终得到一个如下所示的数据集:
User_Name Week_Ending (for weeks with no login) Days Since Last Login (as of week ending date)
Bobisaur 1/12/2019 7
Bobisaur 1/19/2019 14
Bobisaur 1/26/2019 21
Bobisaur 2/2/2019 28
Bobisaur 2/9/2019 35
Bobisaur 2/16/2019 42
Bobisaur 2/23/2019 49
Bobisaur 3/2/2019 56
Bobisaur 3/16/2019 11
Bobisaur 3/23/2019 18
Bobisaur 4/13/2019 12
这将过滤到他们没有登录的用户的周列表中,并有一个列显示自他们上次登录以来的天数,截至该特定的周末日期。
我能够获得没有登录活动的 Week_Ending 日期,但是,我一直在计算“自上次登录以来的天数(截至周末日期)”。我尝试做的是使用(Week_Ending - max(Login_Date)),然后使用max(Login_Date) <= Week_Ending 指定一个有子句。
但是,这基本上删除了 Week_Ending 值早于最大 Login_Date 的所有行。
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
您能分享一下您用来获取中间结果的查询吗?可能更容易,只是适应它。
-
这里是查询的最后一部分 -- select calendar_week_ending, (calendar_week_ending - max(login_dater)) as days_since_last_login, user_name from db group by 1 having max(login_date)
标签: sql amazon-web-services amazon-redshift