00:09
录屏啊。呃,那我们接下来来讲一下这个6.4的练习题,然后我们先看一下这个题目,他说的是求每一个等级的用户对应的复购率前十的商品排行,然后的话,我们看到这一个需求的话,首先就要对它进行分析,然后嗯,我们这个需求描述是这样,然后的话,所需所需要的数据的话,看这个需求第一个嘛,用户的等级,然后一个商品,然后我这里取的是商品ID,当然的话也可以加入一些别的信息,比如商品名之类的,然后。呃,因为我们要求复购率,所以也需要一个用户的ID,然后通过这个用户的ID统计出这个每一个用户购买呃,购买这个商品的次数,然后的话才能才能依照呃这个次数去求这个购买一次以上的用户和购买两次以上的用户,才能求出这个复购率,呃,然后我们数据来源嘛,主要就这三个,一个用户等级,一个商品ID,一个用户ID,然后这个资源的话,自然就来自于我们刚才创建的这个呃DWS表,就是这个用户购买商品明细表,然后比如这个用户ID嘛,然后这个是商品ID,或者说你们说的商品,呃名字或商。
01:33
呃,商旅名字,然后这个是。呃,下单的数量对吧,然后还有用户等级都在这里。然后的话,我们再看我们的这个总的需求,它是对每一个用户,呃,每一个等级的用户对应的复购率的前十的商品进行排行,然后我们拿到一个需求之后,分析完他的数据,所需的数据来源于哪里之后,都是要将这个任务解析成多一个多个子任务,才能够更好的对他进行呃呃数据的一些操作,比如说我这里就对它就分成了四步,第一步的话就依照用户等级,商品ID,用户ID,从那个用户购买商品明细表里面统计出总的购买,购买的呃,用户购买的总次数,这一步就是为了去我们的到我们的下一步去求复购率用的。
02:31
啊,这里求复购率,然后求出复购率之后就要对这个呃复购率就对商品对这个复购率进行排行,然后排行出来之后再对前十的商品呃单独提取出来,得到我们最终的结果,呃然后我们再看一下我们所需要的一些最终需要的一些数据,比如我这里是有一个呃用户的,呃,这是用户的ID,用户的等级。
03:03
对吧,然后商品ID或者说我们如果还需要些别的话就。商品的名称。然后购买一次,购买次数为一次以上的用户数,然后购买次数为两次以上的用户数,然后通过这两者求助复购率,然后他们之间的排名,然后最后是统计时间,然后下面就是串标语句。我们来用一下。哦,那个。先这样吧。我们之前是加了一个商品名称对吧。然后的话错别语句就在这里,仅供大家参考。然后。
04:01
呃,有的有的同学可能会问,就是我们这样统计出来的话,一天统计出来的结果就有50条吧,因为的话你要统计前十的嘛,然后的话有五个等级嘛,就统计出50条,然后就有可能导致很多天以后这个数据非常多,所以的话他可能会做一个分区表,然后我这里对它进行。做一些修改。就是这样对它进行分区对吧,然后的话。没问题吧?无所谓啊,无所谓。呃,这就是我们的一个创标语句的一个。哦,对对对,你提醒我。之前写错了。
05:03
呃,还有什么问题吗,这里。嗯,行。小写,没问题吧?然后我把我们的一个需求了吧。然后把我们的数据源的表结构拿过来。这块。啊,对对吧。然后我们这边移到另一个视图。你看。嗯,然后我们就依照我们的需求一步步的来对呃,我们的最终结果进行一个计算,然后第一步是依照用户等级,呃,商品ID以及用户ID统计出用户的总购买次数。
06:04
我们先把一些结构的东西写好。啊。用户等级是这个字段。然后商品ID。我们之前,我们之前还加了一个三水云吧。然后是用户ID。对吧。然后是统计总的购买次数,然后这里就是对我们购买次数,下订单的次数进行一个。求和。所以就不用到话了。给他起个改名。然后我们之前,呃,做了一个。
07:03
呃,汇总的操作,所以的话就需要对前面这些字段进行规范。这就是我们第一步所得到的结果。嗯,对,我同学说到了我们可以加一个时间。当然这个时间加不加也行。因为实业生产中。呃,就可能不会有我们这样的,呃多天的数据。嗯,就是不会有那个我们这个时间之后的数据。然后这是第一步的结果,然后再对第二步,然后就到我们第二步了,依照用户等级上的ID统计啊,然后复购率,我们刚才老师也说过了,就用那个some if结构嘛,然后这里的话自然就可以当做一个子查询。
08:06
然后。把结构补一下。这一步要算的。我们。业务等级需要吧。然后。商品ID和商品名。这里先起个别名啊。用ID的话,这一步就应该是汇总掉了。然后我们这一个这个只是不这样的。
09:01
我们这一步就是要求复合率是吧,先把上写出来。SF的话,就这个值大于等于一。一零这就是呃,购买一次以上的用户吧。我们要知到明天再过来。然后复制一份。呃,购买两次的。然后求出我们的复购率,复购率的话就应该是。两次出一次的吧。然后这里做一个类型转换。谁错了?你们要跟我说一下。
10:05
这里乘一个100吧。这就求出了一个复购率。然后。而这时间好像是求一个月的不够。没有呀。这个我们的需求应该不是按月统计的。是吧?好像。你要看看我们之前按月统计的话,是因为我们需求里面年月为统计,我们这个应该是不需要按月统计的。好,那我们第二步最终也这么计算,然后的话到第三步对他对这个我们所得的一个复购率进行一个呃排行。
11:30
然后拿一些我们需要的字段,比如这个。在线。这些。应该以上所有的资源都需要,然后我们这一步只是为了统计出一个排行。统计排行的话就两种情形,然后一般情况下我们都是用rank来对吧,然后如果有需求说我们得到的结果一定是要是不能超过十条的话,那么我们就要用number。
12:12
再进行一个开窗。碰到下面了。这里对。用户等级进行。都一个。执行白水。这几个给你。我们就起这个原因吧。好。
13:01
这哪来的?哦,刚才不小心碰到那个触摸触摸板了。那这部应该是算出了我们那个,呃。呃,每个用户,每个等级的用户对某种商品的复购率的排行,然后的话,接下来就要对这个排行进行一个取前十的操作。起个别名第三。为了我们的这个值。小鱼人是吧?然后上面的话就看一下我们需要一些什么东西,首先use。
14:07
然后。商品ID啊。哦,商品名。然后。购买单次购买次数。然后购买两次的用书。然后一个。然后是一个排行。我们这里的话应该还有个分区吧。这样的话应该就能够把我们直接查出来,我们先试着查一下。在这。In色。
15:06
然后。让他来执行吧。我们先把我们的。其他的东西给补完。首先银色two,因为我们这是分区表示用O。我又碰到触摸板了。这手表。上面怎么是这个。然后因为我们是分区的,所以要指定一下分区。我们这里用非严格模式吧。前面加一个。
16:05
I。有没有写错,写错的话提醒一下。应该是这样吧。那我们看一下这个结果补数据吧。诶,这两个零。这两名啥子事?这里啥回事?啊,应该是,呃,我们没有倒叙的问题。是法法,这里没有道具的问题。啊,这样应该就OK了。我们可以再试一下。
17:25
没问题吧?一到十。嗯,用户等级,用户等级二,用户零三,然后这些空的话是因为那个,呃,我们是对数据,数据没有对上。那行,我们这里就。表创一下。OK。那就插入一下。
18:07
那等他执行吧。我们把我们的。我们导游需要脚本吧,把脚本写出来。然后第一步是什么,UC定义变量吧。啊,不是第一步,是在第二步给你原料。然后。我喜欢用eec。LT目录下的。Other。I,然后B小的。东西哪来的?然后是处理日期。这边是杠,判断它是否为空。
19:01
然后在这边先把结构补全。然后。我又碰到触摸板了。应该是这样吧。然后定义我们的蛇口。啊。这边结果应该出来了。超超OK,我们这边可以先携带一下,看一下结果。万一他没有呢?
20:01
有东西吧。那我们继续把我们东西写完。写蛇口这里面的话要做两步。其中一个是要把我们的日期改掉。你就看这本书了。然后一个是遇到点就换成到了APP。第一个是这里。后面应该还有个from的表。来,就这两处。最后执行一下。二杠一。然后。
21:00
On the seven。这边是应该是在闭幕一下吧。开啊,可以创建一个。我们的脚本名称是用文表明。对,很生气。哦,发完东西这样子了。然后等一下。我们刚才那个表叫上来。没事。没没加上吗。应该是没山上。
22:10
哦。这东西挡住了。他怎么说的?好,应该是OK了,要不的话我们执行一下。还是直接加吧。呃,2019。零二杠一啊。啊,等他跑完。我们用的字段应该是S7DATE对吧。然后说是一起更要的。
23:10
这里面有一个小问题,嗯。好,这边是打完了,看一看组装的结果。OK吧?非常棒,呃,大家如果在以后的开发或者这个面试的过程当中,如果能达到这种状态,那那就无敌状态对不对,拿来这么写啊,非常非常棒,然后这里面有一个小瑕疵吧,啊,应该是其他班也放过这个问题,哪个问题呢?就是这个写脚本这一块。
24:18
这款。这个摇摆什么,这脚哪一块有问题呢。时间这一块。大家觉得这句话有没有问题?那现在大家可能看不出来是吧?啊,我给大家举个例子啊,演示一下。我先把这本呃一起写是吧。演示一下啊VM。Test点。井号叹号b best,然后刚才写的是这个if是吧,哎。
25:04
然后是杠纹,然后是刀杆。到对没加双引号可以写上啊,会有一个后果啊Fi。那上面直接输出吧啊。一行吧,嗯,然后下一个。二这样吧,行吗?啊,然后来看。啊,正常,这不用提醒你还挺那错了很正常啊,其他同学肯定还有这种,每个班都有啊,你有车子啊,对咱的不错,但是有的时候你没得占了对吧,那你看现在我不输入日期,不传任何值,一般来说我是用双双中是一对吧,然后我现在再传一个值。
26:01
21,也就是说它始终进的都是一啊这么一个问题啊这个那来看一下为什么呢?VM。T。那这里面如果你不加上那个双引号,它相当于是不是一个,他认为是有东西就不是空的啊,你要加上那个双引号,它取的是这个变量的值,那变量这个有可能它没取对吧,那没取,那我我就要走下一个分值了,那否则的话,如果你这么写,它一直都会走这个分值,那你改一下啊。小问题啊,小问题。啊,那我们再来还是test啊,点现在呢,我什么也不取。是吧,这样的加二根号它有区别的啊,这个也有一个小细节啊,稍微注意一下,因为在以后的这个开发中啊,其实我们这种情况是最多的,因为在测试阶段我们是要输入输入这个时间的,因为在开发的时候我们会输入时间吗?呃,基本上都是T加一,是不是这个算前一天的呃,算前一点的题啊,这小题啊,整体还是非常非常棒的啊。
我来说两句