00:00
好,那下面我们来看一下DW层啊,每日流程的用户明细啊,具体做一下这个明细表来看一下。那首先这个呢,是我们未来需要的一个留存的联系,上面还是最关键的字段M排D,然后下面增加了两个字段,这两个字段呢,用于日后的格式化,分别是。这个设备的新增日期,因为这个留存他算的是某一天的新增设备在其他天的一个留存下来。啊,也是在其他下来其他天,其他天没有活跃,所以说这个日期要记录下来,那还有这里面截止当前日期的留存天数,那假如说这个设备呢,是2月10号新增的。那么这有什么含义呢?截止到当前日期留存的天数,比如说一日留存,算它的一日留存,那么你计算的天数呢,就得在2月11号去计算,2月10号留存一天前呢。
01:09
那么如果这块写的两天,那你这个就是2月12号去算,2月10号的设备在2月12号流出了多少。那如果是三天,2月13号,以此类推。啊,这样一个过程。好,那你说这两个值呢,其实都可以写啊,直接给定就行了,那比如说。上边这块这没啥说的啊,都直接下这样表里面插入数据啊,这是公共字段,然后呢,这个设备设备日期啊,这个NF是谁呢?新增设备的时间,比如说新增嘛,就是新增表的日期,那就是create time啊create,那这个留存我们说先算一日的留存,后面我们再算两日三日还是七日。那你说这句话固定写个一,先转一好。
02:01
哪个上面字段OK否定,那下边呢,就是算具体的留存。那这里面是用新蒸。去招引啊,不是新增,这是活跃去招引新征。啊,然后活跃的日期是。一天后,那是2月11号。因为这是一。那么新增的日期是活跃的日期呢?前一天,比如说2月10号,因为2月11号减一才是2月10号。啊,那我们现在这个算的就是2月10号的新增设备,在2月11号活跃了啊的留存下来的用户是这么一个概念。好,那我们来写一下。都是那个绕来绕去的哈。
03:02
来看一下T也这那这既然是分级表好,我这边呢,就right我一下。W rt table,像这张表里面去插入数据,好,那有个分区,那就是。那它这里面呢,是这个DT,因为这是DT啊,DT呢这个分区等于2019杠零二杠12023号啊,诶2月11号吧,12月11号的统计啊,21号好,然后。From啊from,那这里面from就是2月11号的活跃,那活跃的表示DWUVDET。第一条。对。也就说2月11号的活跃,那活跃是用地去张领。
04:05
招新增表对吧?啊,那新增的是DWS。你有一个。M mid啊,然后是对,那这个是NN去噪音,它噪音的条件是啊。Ud.UD是DT吧,啊等于NM点它是不是内。OK,它们噪音的条件是m midd了,是这样吗?啊,等于n.m mid啊,它们交集交集在一起了,然后条件。那第一个这个活跃的日期得是2月11号啊,那它点DT等于。2019杠零二杠幺零啊,然后按。
05:00
他的日期。比如说第二。对,是这个吗。正常了。它是吧,啊,它的credit等于。当前的日期减一,因为我算的是一日的留存,好,那这块既然是涉及到减这个。哎。啊,定下来了,好减几呢。减一啊,当前日期减一来吗?2019杠零二杠幺幺啊,它减一,那就得到了创建日新好号前面啊这也11啊对这是11啊没问题,21号好,那前面这一个一个得到补齐。对着啊,看来你没睡着好,那这是这个,那这个ID同样是不是有一个人给一个啊UD点那下边这些公共字段,我这三过来啊公共字段。
06:14
啊用DNM都行,DN好,那下面呢,这个是创建日期,那就是nm.create date,那下面还有一个留存的时间是不是一呀。一天啊,那我们现在呢,来试一下。试一下啊,有没有问题,那首先呢,先穿着表。搞定,然后呢,向里面去插入数据。其实是比较简单的啊,其实玩的就是日期,就是活跃的日期和这个创建的日期。
07:01
那中间这个差值呢,就是你这个留存的天数。嗯。像这种生活能搞定吗?那没问题吧,在面试的时候可是真笨啊,现场醒啊。最差的情况下是说出思路啊,思路要说出来,比如在这个面试当中,好,那最期待的就是这个586对吧,啊是留存下来的,你说2月10号的。新增设备在2月11号留存下来的个数,知道吧,留下来个数好,那这个呢,就是这是每日留存的一个计算,那这是一日留存。
08:01
那现在呢?我想算两日、三日、N日之后的留存。那怎么称,你看一下再回来看看啊,那也就是说,如果说我把它改成二,那这块就变成减二,如果改成三,这块减三。想一下是这样吗?嗯,好,那这块简单了,我想先算。这是算两日留存,那这块就两日留存,那再来。我想算三日流水。那这儿就是。是这样的啊,就这么简单,那现在呢,我想通过这个脚本。写一个脚本,算出一日、两日、三日啊设的留存。
09:06
怎么办呢?那刚才我这个结果中间需要加一个。Unor把它拼接在一起。那么尼奥大家应该是没学过的,学过什么呢?UN尼学过UN尼吧?啊,那尼奥和尼什么区别呢?来看下边这块。这里面有两张表,直接大家看,分别是K8A和K8B啊,这是ID姓名分数啊,那这里面的姓名的特点呢,是ABC,姓名呢是decc有一个公共的。C对吧,好,那么如果你用这个U去查询。发现这个C就被清除掉了。是吧,啊,那如果你用这个标题二,那查询就是ABCDC。它就没有去重啊,那这个呢,也是面试一个考点,它的考点内容就是union和UNION2的区别,那么union会将联合的结果去重,效率叫那个102XS,因为它只要去除就是一个运算对吧,那102呢不会对结果去统,所以说相对效率高一些。
10:21
啊,那它就是这种这种结果,那你看一下我们这个呢,不需要的系统直接就把这个一日留存,两日留存,三日留存,把它拼接在一起。那什么听见了,哎,我就记这个聆听一下。现在搞定中间结果UNIO。UNIT2啊,那这个插入是插入一次就行了,把所有结果拼接在一起啊,然后都是查询,那再往下这块再来。好,然后这个结果干掉。
11:00
那就是上边是一个流程,两个流程,三人流程,那我们现在来算一下啊,我们的运行。嗯。哦,这个分号是吧。少干掉一个这个分号干掉啊。还有吗?这是这个啊,然后这个最后一个得有啊,对吧,没问题啊来一下。前面你不说了啊,好,再跑一下。哎,这回差不多了。喵喵把所有结果拼接在一起,一日,两日,三日。所以像这种指标啊,就会出现千行的指标啊,来个一到180天的流程。直接就是100行乘以一百八多少,一万多毫升。
12:06
行,那这个算完了,算完之后呢,我们来查一下,看一下sta流程日期看性啊,那大家说现在这个结果没有几天呢。查,这是留存天数,然后看得清。我们这里面是不是只有2月10号的,因为针对2月10号新增的设备,是不是只有一日的流水呢?啊,只有这一日的啊,因为如果你后边再造一些数据的话,它就会有一日两日三日啊,就多日了啊这个计算,所以呢这个呢,就是这个留存啊,明细的一个计算啊。
我来说两句