00:00
来吧,一起写啊一写。那要想算,要想往这张表里这个导出去,那咱们肯定还是呃,原来的套路呗,先分析一下每个字段是不是应该来自于哪张表啊,对不对,那每个设备的活跃次数来自于哪张表。哪张表是不是肯定是启动日表没错吧?啊,那下边这个配置呢。那肯定来自于页面日志表吧,对,因为页面日志表当中是不是记录了每一次页面浏览啊啊那都记录,那所以说从这两张表来呗,那我们先来先求第一个字段老给你看啊,来select。From dwd层的应该是啊12LOG吧,12LOG,然后分区,咱们拿哪一个分区,当天分区啊DT2020杠零六杠哎幺四啊完了之后呢,我们需要做的事应该是啥。要求的是每个设备当天的活跃次数吧,那所以得怎么办?是只要是每个就得分组吧,格数外格数外谁设备ID啊,只个数外设备ID看行不行啊,你看我搁外设备ID,然后呢,我上面得选设设备ID对吧?因为咱们没有维度表,所以说这俩字设备相关信息这俩字段是不是也得拿回来呀,对不对,那你是不是也得选,那你要选的话怎么选brand brand,然后下边呢,Mol,然后下边直接怎么看得清。
01:23
哎,你说这个circle咱们写出来能不能运行成功。程肯定不行,为什么呀,汉语当中咱们语法要求比较严格啊,就是说你只要涉及到分组了,那你上边能选择的字段只能有以下三种情况,那三种情况呢,第一个就是你分组的字段,第二个情况就是聚合函数,那第三种情况呢,就是常量值,比如说我在这呢,我直接写一个一,哎,这个行不行?这个是可以的啊,能是这三种情况啊,那所以说呢,呃,这个你要想选上他俩,那你这么写肯定不行,你得怎么办呀,是不是把他俩也得加上啊brand,然后猫。
02:07
哎,是不是得这样选啊,哎,但我问一下啊,我按照这仨字段分组,按照这一个字段分组。啊,你说这个分组的效果是不是一样的,是不是一样的呀,是一样的,为啥?因为一个设备ID它的品牌和它的型号是不是肯定是不变的呀,对不对,对不对,对吧,因为一个设备ID,我这个设备ID跟这个设备是唯一绑定的呀,对不对,那所以说呃,设备ID所对应的品牌和型号是不会变的啊,肯定是唯一的,所以说你按照设备ID分,或者按他们仨分,这个效果是一样的啊,这个得搞清楚啊,好了,那这个相当于最终咱们选出来的结果就是一个设备一行嘛,啊,那这个就是它诶。那这个就是它这个count芯,就是它今天活跃的次数,咱们起个别名叫做log in count,好,那接下来呢,咱们再往下走啊,再坚持一下啊,同学们啊,不要犯困啊,不要犯困啊,清醒清醒来,咱们看下边这个,下边这个字段是什么,咱们这下段要要求的是什么。
03:12
咱们要求的是不是每个设备在当天浏览的这个页面次数啊,对不对啊,那这个东西跟咱们上午写的那个订单明细统计是不是应该很像啊,对吧?咱们首先得先求啥,先求出来这个字段所需要的数据吧,咱得先求出来每个设备今天浏览的每个页面的次数吧,对不对?那这个怎么去,去哪求?咱们得找到DWD层的配置页面啊,精神精神啊同学们来看一下,那这个页面这个这个这个表啊,这个表,那这个表当中我们一行数据指的是什么?是一次页面浏览记录吧,一次页面浏览记录啊,大家看一下。Mid,那它浏览了什么页面,是不是在后边浏览了哪个配置,配置是不是有配置ID往下翻啊在这儿呢,对吧?啊,这个这个设备浏览这个页面,这个设备浏览这个页面就一行数据,就是一次浏览记录,对不对啊,那所以咱这应该怎么处理一下,我们要求的是每个设备浏览每个页面的次数吧,所以说咱们得按照谁分组。
04:18
是不是得按照设备ID加上配置ID进行分组啊,没错吧,啊来我们select啊select,然后呢from啊,然后呢,DWD层的page log啊配log,然后后边日期先过滤一下啊DT等于2020杠零六杠哎幺四啊那接下来咱们分组葛入BY啊,应该是得来一个m mid设备midd,再来一个谁配置I对吧?啊,那上面咱们能选的只有谁呀,只有mid和配置ID,然后再来一个啥count看行,那这个看得清就是什么,是不是就是每个设备浏览每个页面的次数啊对不对,那这时候呢,咱们可以对它进行一个查询啊,你先看一下这个结果。
05:05
结果也很快啊,咱们稍微等一下。那这个结果是咱们最终想要的吗?就是不是最终我们想要的效果应该是啥样的呀?啊,应该是把这个结果是不是得封装到一个结构体当中啊,啊来咱们看一下这个,诶怎么跑的这么慢。啊,开始跑了啊。嗯。嗯,这个应该很快了啊,OK,已经完事了,哎,是不是出来了啊,是出来了,来我们看一下啊,那这样一来的话呢,我们这块呢,就相当于就统计出来了,诶就是每个呃设备浏览每个页面的诶次数啊,咱们就搞定了啊就搞定了啊好,那这个完之后呢,我们需要先怎么做,是不是先按照之前那个套路,先将这俩字段一个页面ID,一个页面次数,是不是得先封装到一个结构体当中,完了之后呢,再把结构体交给谁,交给class塞不是封装到一个数组里,是不是就完成了呀,这是咱们的这个做法啊,那这边咱们先给它起个别名啊叫做啥叫做配置PAJ,然后呢count啊好,那现在给它分成结构体,我们需要以它作为子查询啊来select。
06:19
啊,然后呢,From。让我来括号啊。嗯,感超喂,把它拿过来,然后我们往前推一下啊,反推一下,那这个起个别名我们就叫tmp就行啊好,那上边我们给它封装啊,首先第一个先选一个m midd啊,然后呢,是不是还是用那个nameru去去做呀,对吧?首先第一个字段名叫做配置ID,那这边咱们就选配置ID啊,然后呢,第二个字段名叫做pade啊配置count,那这边呢,就选配置count,看下选Co有问题,好,那是不是相当于这个配置类的就诶统计完了呀,就配置X。
07:05
啊,那是不是搞定了啊,就封装成结构体了嘛,啊封装结构体之后呢,我们还剩下一步。干啥呀?是不是就将结构体封装到一个数组当中啊,那这会咱们得怎么封装啊,是不是得格外一下呀,格格谁是不是就是设备ID啊,Mid下面是ID啊,然后下边呢,咱们需要将这个玩意儿CTRLX给它放到collect c list或者site都行,这不用去重,不用去除,就这样搞就行啊,那这边呢,我们运行一下。呃呃,丢东西了是吗?呃,丢了别名是吧?啊,把这个去掉。哎,放后边啊。好,那这会儿咱们再跑啊。来,走。这个应该这个结果就正确了啊来咱们看一下。
08:01
来你看这就是我们现在这个最终的结果啊,就最终结果就长这样啊,这里边呃,前边是诶设备ID啊,然后后边呢,是啥是我们这个呃,他当天浏览的所有的页面对不对,所有页面信息啊搞定啊好诶咱们这好像看有点问题是吧。呃,是不是有配置ID为闹的呀,对不对,配置ID为闹的话,那这相当于什么呀,相当于咱们前面的数据是不是有问题啊,对不对,因为咱们页面浏览浏览记录啊,页面浏览记录,那你是不是肯定会有一个配置ID啊,对不对,那所以前面数据肯定是有问题啊,那这块呢,你可以留着它,或者你要不想留的话呢,你看是不是可以做一个过滤啊,对不对,咱们从这里边可以把那个页面ID。为no的是不是过滤掉啊对不对,其实理论上来说,正常这个页面ID不应该为no的啊,每个页面肯定都有自己的ID啊,那这边咱们呃,就是假定它没有问题吧,假定咱们数据没问题啊,那咱们就先这样啊好,那这边完成之后呢,我们接下来其实就剩下事比较简单了啊,剩下的事就干啥了呀。
09:07
是不是将这个和上面这个它俩一合并是不是就行了呀,啊,就能得到咱们最终这个啊结果了啊,就是这样的一个逻辑啊好,那当然呢,这块咱们还有点儿这个小毛病,还有小毛病什么毛病啊。因为还是考虑到咱们这个没有设备维度表这个问题啊,那所以说我们去选择的时候,这个位置咱们是不是不能只有一个mid啊,咱是不是把那俩字段也得选出来呀,你要选的话,这里边咱们要做的事就比较多了,那首先咱们得从最内层开始改吧,咱们得在这个位置是不是得搁入外上那个呃,Brand,然后呢,那个model对不对,那同样的道理,那在这个位置咱选的时候是不是也得是选出来呀,来brand,你就相当于把什么呀,把麦跟brand,再加上这个model,把他们仨看成。一个整体是不是就行了呀,他们仨就是一体的啊,在哪都同时出现就行了,那这完了之后呢,下边这个位置是不是咱也得是格入Y这三个字段来CTRLC来CTRLV啊,那上边咱选的时候呢,也要把这仨字段都一起选出来啊啊这多了一个逗号啊。
10:16
来这儿给他补一个逗号,来这咱们回车。好,那这就搞定了啊,这就是咱们这头词课啊,那这个玩意之后呢,剩下的事儿就是将他俩这个拼接一下就行啊,这个拼接的词课呢,我们直接把文档粘过来啊,这个咱们就不再手写了啊来,我们把它拿出来。放在这儿。啊,CTRLC。来。推车。CTRL喂啊呃,这块它怎么报错了,我看一下啊,这应该是咱们这儿没有逗号啊,这逗号这里逗号来回车LCTRL位播放在这啊好,那大家来看一下啊,咱们这个circle能不能看懂啊。哎,是不是还是用的这个with这个表名加as这个语法呀,对吧?哎,这是第一个子查询,那这个呢,是咱们第二个子查询,跟我们刚才写的其实是一样的啊,是一样的啊完了之后呢,它俩进行一个是不是也是全外联呀,也是全外联,那全外联啊,那两张表示全外联的话就比较简单了啊,但是咱们这个连接的时候,咱们这个字段它是按照哪个字段连接的呀,是不是按照这仨字段连接的呀?啊其实这边也没必要按仨按谁就够了。
11:28
设备的设备ID能连上就可以了呀,啊对吧,因为一个设备ID是一个设备的唯一标识嘛,所以这块呢,呃都可以,你写仨字段跟写一个字段,其实在这儿的一个效果是一模一样的啊,因为他们仨相对是一个整体嘛,只要m mid相同,那剩下俩字段是不是肯定相同啊,肯定相同啊好,那这个咱们诶搞清楚就可以了,那完之后你看上边啊上边。啊,上边那咱们这选的时候呢,你看看这块儿怎么选呢。啊,这怎么选呢。嗯。
12:00
咱想的呀,是不是这仨字段啊,因为我是这个关联的字段嘛,那因为old和new,它可能是这样的一个对应关系,不是old和new啊,这是俩子传群嘛,可能是这样的一个关系吧,所以考虑到这种闹的问题,那是不是咱们得去判断一下呀,选一个不为闹的出来,是不是作为它这个,哎,这个这个字段的值啊,那下边那个呢,咱们这其实有个地方得改一下啊,它这哪个地方就这个,这是不是有一个login count呀,对不对,那login count你就全外连的话,是不是有可能为。为闹啊,是不有可能没闹,那为闹的话,那咱们是不是不能让它保留闹,应该让它是多少啊,该是零是不是比较好啊,就这呢,最好给它改一下啊,咱们NVL啊,然后呢,把这个翻进来,如果为闹那我就是零啊,然后下边呢,还有一个啊是配置this配置space是不是就是咱们那个结构体数组,结构体数组那没浏览页面,那是不是就直接就是闹就行了呀,这个没必要转成零啊,是这样的,跟咱们前面其实写的没啥区别啊,没啥区别啊,那这个就是我们这条完整的circle啊,那就搞定了啊,就搞定了啊行了,那我现在把这个视频先录一下。
我来说两句