00:00
呃,好了各位,那现在呢,我们再来看一下这个新增交易用户统计这个需求,这个需求其实相对来说是要比刚才那个要简单一点啊,因为它,呃,首先它的指标的个数是不是就少啊对吧?一共就俩数,哪两个数来着,一个是最近一期三十日的新增下单人数,还有一个就是最近一期三十日的新增支付人数,对吧?好,那我们还是老规矩,咱们拿到之后先得分析什么来着,先得分析它对应的一个业务过程对吧?好,那现在来看一下,它是不是显然对应的是下单,这个显然对应的是支付啊对吧?OK,那所以他俩肯定是来自于不同的表的来动表,那我们就得分开去求嘛,对吧?来我们先一个来先看第一个新增下单人数,当然也要先简化一下啊,先只考虑最近一天内的,好,最近一天内的新增下单人数,这个咱们怎么求。啊,是不是得找一下DWS层有没有这个下单的业务过程的汇总表啊,对吧?那这个有没有呢?说实话这个就太多了,对吧?来咱们简单的看一看啊,这个就是DWS层的所有的交易域的汇总表,来看一下交易到哪到这儿对不对?那这里边跟下单这个业务过程相关的呢?首先这个是不是下单的,这也是下单的,这也是下单对吧?那这个呢,还是下单,下面就也这也是下单对不对,下面就没有了啊OK,好,那与下单相关的表有这么多,对吧?那我们到底应该用谁呢?
01:26
那咱们用谁呀?呃,当然这个因为咱们之前已经做过铺垫了啊,所以在这大家要说的话,肯定那肯定是谁呀,肯定是这个user TD了,对吧?啊,肯定是这个历史至今的这张表啊是那假如说咱们没有做过之前的铺垫,那大家呢,就得分析分析了,你就得逐个去分析,对吧,你看这个能不能求出来,哎,对吧,我这个最近这个一一七三十的现制下点数,那这个能不能求这个呢?你就得一个一个去分析了,那在这呢,我就不带大家一个去分析了,因为已经知道答案了,所以在这了,我们就直接从这张表里取出,那就完事了。好,那大家还记不记得这张表里边的数据,它的结构是什么样的呀?首先一行咱们是不是就一个用户啊,对吧,因为是用户力度,那他连列都有什么列呢?是不是有这个人的什么首次下单日期,末次下单日期对不对,还有什么累积的下单次数,件数,金额是不是这些东西啊对不对?好,那完之后我怎样去算某一天的新增的下单人数呢?很简单,我是不是只需要根据older date first首次。
02:26
下单日期去做判断就行了,对吧?诶是这样的,好了,那接下来咱们就回到我们刚刚的这个三上面,来看看这块咱们到底应该怎么写啊来我们现在要算的是最近一日的新增下单人数啊,所以说我们首先select from应该是DWS层的,呃,哪个交易域对吧?Trade应该是用户力度,呃,找到谁找到那个O的,呃,应该是TD这张表对吧?好,那完之后我们是不是也是只需要拿它的一个分区就够了,对吧?好,拿到之后我们接下来怎么做?咱要求的是什么?是最近一天内的新增下单用户数,所以说我们要要要要找谁就行了,是不是只需要找一下那个首次下单日期在最近一天的用户就完事了呀,对吧?所以应该是older date first,它得等于2020杠零六杠幺四,等于我们最近一天的日期,好,那拿到之后接下来呢。
03:17
咱要算的是人数对吧,人数我是不是直接给他来一个count的就行了,对吧?直接来看的没有问题吧,因为咱这个表的力度本身就是用户力度,一行就是一个用户,所以直接看得清,那就搞定了,好了,那也就是说最近一天内的新增下单人数咱就求出来了,对吧?OK,那这个呃,可以执行一下,这个结果应该是没啥问题的,好了,搞定了,那接下来继续往下走,那下面是不是还有一个什么最近一天内的新增支付人数啊,对吧?它的计算逻辑跟新增下单人数是不是应该是相同的呀,对不对,因为我们在DWS层,咱也有一个什么样的表,哎,用户力度的是不是支付的这个历史资金的汇总表,对不对?所以说我其实要想算新增支付人数,我只需要把它拿过来,然后把谁改一下就行。我们只需要把这里边所有的order统一都改成是不是payment就完事了,对吧?来咱们改一下啊,Pay对不对?那诶这张表,然后呢,Payment这方等于首次支付日期等于这一天的,那是不是就完事了对不对,这个非常简单啊,好了,那截止到现在最近一日的新增的下单人数和新增的支付人数咱就都算出来了,好,那接下来继续往下走,是不是还得考虑七和30啊对吧?七三十咱怎么求来,咱们还是先分开算啊,哎,咱们分开算再合并,这个要好理解一点啊,来我们现在先看这个7D啊,7D这个七地指是谁啊,是最近七天的新增的下单人数,首先咱们先说最近七天内的新增下单用户,这个怎么定义?
04:41
是不是首次下单日期位于最近七天,那它就是一个最近七天的新增下单用户啊,对吧?那所以说在这儿我们怎么做就行,我也是基于这个ED,我我我怎么调整一下就行,我是不是只需要把下边这个首次下单日期的这个过滤条件给它改一改就行了,对吧?我给它改是什么呢?大于等于data sub,然后当天日期放进去,后边来一个六对不对,那只要首次日下单期位于这个七天里边,好,那它就是一个七天内的新增下单用户,然后呢,我直接看了一下,那就完事了,诶这样一来我们最近七天内的新增加下单用户数就求出来了,好,那七二会了,30跟它是不是又是类似的了呀,对吧?那这里边我们把七先改成30,然后这样呢,直接改成29,哎,那就完事了,OK,好,那完了之后各位同学我们来看一看,咱们当前又面临了一个什么样的情况呢?
05:30
面临一个什么样的情况,咱们当前是不是又面临了一个对不同的数据。对不对,进行了一个什么,是不是相同的聚合的一个情况啊,对吧,OK,好,然后这个不同的数据,大家来看一看他们有没有交集。有没有交集?你比如举个例子啊,我这个older date first大于等于七天前的日期,包不包含order date等于今天这个日期的数据。包含嘛,对不对,那同理,我这儿是不是也包含前面对吧?所以他们是有交集的,这个我们没办法直接通过一个过滤条件取这样的三份数据,对吧?那所以我们应该怎么办呢?是不是得先炸成三份相同的,再进行过滤之后再进行统一的分组集合呀,对吧?这其实就是咱们最开始处理的那种情况了,对不对?这个我就不再多多说了,我直接拿过来,咱们给它,诶给它直接写出来就行了,这个应该大家很熟悉了啊,那首先我需要先来到这个地方,那完之后呢,我应该来一个是么?Let,对不对?后边跟上一个ES prod explo,里边放上一个,里边呢,咱放一个放一个七,放一个30,后边来一个T是this,对吧?好,那现在数据已经由原来的一份变成三份了,对不对,那完之后我们是不是得改一下过滤条件,改谁就行了,注意观察这三份他们是不是都是这一个分区啊对不对,所以说我们要改应该改是不是这个物理条件啊对吧?来拿过来,然后呢,我们应该是它得大于等于,哎,咱把这个放进来啊,CTRLC诶。
06:56
拿过来CTRLV这里边应该怎么写呢?应该是应该是当天日期先给它放在这啊,然后后边改成啥go,后边改成re减一个一好了,那这样一来数据咱们就已经准备好了,接下来就可以直接格入BY了,对吧?格入外re this,然后上边呢,把re选出来,然后聚合逻辑咱们用变吗?聚合逻辑是不用变的对吧?我们的聚合函数啊是还有聚合的字段都是完全一样的,所以就不用再改了,那直接给他拉一下就完事了,好了,那现在最近一期30天内的新增的下单人数那就求出来了,诶这个完成之后,下边往下走,你看这这个新增下单人数要会了,新增支付人数是不是就不用说了呀,对吧,他俩是一样的啊,所以我们这之间怎么做啊,你把它拿过来,然后呢,咱把这里边所有O,所有的O字眼对吧,全部都给它改成是不是payment,那就完事了,对吧,其实主要就是这俩地方来,我们给他改一下pay,因为我们这个表名,包括这个表里边的字段名,咱命名都是有规律的,对吧,是这样的啊行了,那这样一来的话。
07:56
最近一期30天内的新增的支付人数,咱也就求出来了,好,那这俩都求出来之后,剩下的事简单了,他俩应该做一个什么操作,最终。
08:05
他俩最终做一个什么操作,这个分开写的我就不要了啊给去掉应该是join还是油你呃,应该是join吧,对吧,因为我最近一天的这个新增的下单跟支付人数这个一行,诶所以照一下就行了,当然这样的话是不是应该用recent this这个作为关联条件,对吧,这个咱就不多说了啊行,完成之后视频我给他停。
我来说两句