利用Prep计算连续登陆天数

计算连续登陆天数是SQL面试中一道非常常见的考题,大家在网上随便搜索都能找到不少解题的思路,使用开窗函数是一种比较好的方案。今天,我们利用tableau prep来复现这种方案。

数据集如下:101账号连续登陆一次为4天,另一次为5天,102账号连续登陆一次为6天。

  • 新建一个清理步骤。
  • 新建计算字段“日期排序”,使用PARTITION和ORDERBY函数,根据“编号”对“日期”进行分组排序,得到每个日期的顺序号。
  • 新建计算字段“日期辅助列”,利用“日期”与“序号”的差值算出辅助日期,“辅助日期”相同就可以判定为连续登陆。
  • 新增聚合步骤,使用“编号”和“日期辅助列”作为分组,使用“行数”进行计数,就可以得到不同用户的连续登陆天数。

在此基础上,如果需要计算大于N天的用户,就可以再新增清理步骤进行筛选。

如果需要计算用户最大登陆天数,可以再新增聚合步骤,只按照“编号”聚合,求出“连续登陆天数”的最大值即可。

如果我们还需要计算连续登陆的明细表,就需要在首次聚合的时候增加最大和最小日期。

然后通过清理步骤,修改字段名即可。

以上内容的完整步骤如下:

你可能感兴趣的:(利用Prep计算连续登陆天数)