00:00
呃,好各位,那现在我们来看一下咱的第一个需求,叫做用户行为漏斗分析,呃,这个漏斗分析呢,它实际上让我们统计的内容呢,就是一个最近一期30天里边的,然后呢,是不是各种各样的一个操作的人数啊,对吧?包括什么浏览首页的人数,浏览详情页的人数,加购人数,下单人数,支付人数,对吧?诶那在这儿呢,咱们怎么去算呢?是不是就一个一个去分析对吧,看看他们是哪个业务过程,然后他需要用到哪个表是不是,然后再去写三考,最后再给他拼一下就完事了,对吧,大致就是这样一个逻辑,OK,那当然咱这儿了,还是要先简化一下这个需求,暂时先不去考虑最近N天,咱先只算一个最近一天啊好,那完之后呢,我们这些指标呢,就得一个一个分析吧,对吧?OK,那首先我们先看第一个,第一个让我们统计的是什么,是浏览首页的人数,对吧,那咱是不是得先分析一下它对应的业务过程是什么呀?诶那大家说它对应的业务过程是谁呀。你想浏览首页的人数,那不肯定得是页面浏览嘛,对吧?OK,那所以说它对应的是页面浏览这个业务过程,OK,那接着往下走,那这个对应的业务过程是什么呢?它对应的应该是也是页美浏览嘛,对吧?OK,好,那所以说它俩对应的是同一个业务过程,对吧?那一会儿咱们写词的时候呢,就得考虑考虑看一看我们能不能说,诶我通过一个三号,对吧,我只读一遍数据,我把这俩值一块儿都给它求出来,是不是可能会考虑这样一个优化呀,对吧?OK,这个到底怎么做,咱一会儿再说啊,然后往下走,下边这个是card count card count,也就是加入购物车的人数,那它对应的业务过程肯定是加购呗,对吧?那这个对应的肯定是下单,它对应的肯定是支付,对不对,按照我们的分析呢,咱们这五个人数对应四个业务过程对不对,那所以说呃,不同的业务过程是不是肯定是对应不同的实实表或者是汇总表啊,对吧?那所以这几个人数我们不可能说我通过一张表一下都求出来,这是不可能的,对吧,我们肯定是得先分开求,最后是不是再做这个。
01:58
对吧?诶,这是咱们一个大体的逻辑,好,那现在咱们就一个指标一个指标的来,咱先看第一个home count,呃,由于咱们简化了啊,我们现在只考虑最近一天,也就是我们现在要求的就是最近一天的浏览首页的人数,来大家分析一下,你说这个我们应该从哪儿取数啊,首先它对应的业务过程是页面浏览对吧?所以说我们首先是不是得先找一下DWS层有没有页面浏览的汇总表对吧?有没有呢?去看一下啊,找到DWS,然后呢,我们应该找什么域的呀,页面浏览是不是属于什么域来着,流量域对吧?那所以说在这呢,我们应该找这种traffic,诶现在大家体会一下,你看这个流量域,这这这个这个数据域的作用,大家现在有没有体会出来对吧,是不是找表的时候能够快速的定位到那几张啊,对吧?要不然的话你还得一个一个看,那就太麻烦了,这就是划分数据域的一个主要的啊,这个意义嘛,对吧,就是方便咱们的使用啊,好,那现在我们找到这个浏量域了,完了之后呢,有没有页面浏览的汇总表呢?有他们仨都是页面浏览的对吧?好,那我们现在要。
02:58
刚才是什么是浏览首页的人数对不对?那你说我们应该用到谁呢?俩力度,一个是页面访客力度,一个呢是绘画力度,那大家说这块我们应该找谁?先说绘画力度能不能求咱们这个值,绘画力度大还大家还记得绘画力度这张表咱们每行是什么内容吗?是一个绘画的什么时长,或者是浏览的页面数对不对?那我们还能知道这一个绘画里边它到底浏览了哪个页面吗?你根本就不知道了,对不对?那所以说你通过这个表去算什么首页的浏览人数,这个肯定算不出来对不对,因为你这一个绘画里边有什么页面,我也没记住啊,对吧?哎,所以这个肯定是不行的啊,那所所以咱们能选的是不是只有这个了,对吧?那一个是1D,一个是ND,我们现在只算一天,那我们现在就看1D的表,1D的表这是一个什么?这是一个页面访客力度,什么叫页面访客力,我们把什么样的数据聚合到一起了呢?
03:50
打开看一下,我们实际上呢,是把在这一天当中是不是同一个访客浏览同一个页面的记录给它聚合到一起,一起来一起来对吧?OK,那咱们这儿既有访客的这个维度信息,也有页面的维度信息,那现在我们再去统计,比如说首页的浏览人数,咱们能不能统计出来,能啊,对不对?比如举个例子啊,大家看这个,我这儿有一行这样的记录,那就表明什么,表明在最近一天的时候,是不是这个人他浏览了首页啊,对吧?那完之后我是不是就能统计浏览首页的有多少人,对吧?肯定是能算出来的啊,所以在这儿咱们就不多说了,我们直接从这去算咱们这个首页的浏数啊,怎么去写呢?应该是select from dws层,大家找到traffic,也就是流量域对吧,找到配置visit,然后呢,配置为U这张表,那当然我们只算最近一天,所以只需要拿一个分区就行了,哎2020杠零六杠幺四对吧,好找到之后接下来干啥。
04:45
接来我应该怎么办?是不是得过滤一下啊,对吧?咱们得把什么样的人过滤出来,得把浏览的首页的人过滤出来,对吧?那怎么过滤呢?很简单,你就直接来一个and配置ID等于后,那是不是就完事了对吧?OK,那完之后咱们来看一下它返回的结果是什么?呃,上面没写星啊,咱们写一下来先写一个星啊,把所有数据线都查出来,来大家来看一下,你看我们当前拿到的这些信息都是干啥的?都是浏览了首页的那些访客吧,对吧?好,那你要想知道有多少人,我直接怎么做就行,我是不是直接来一个count芯,那就完事了对吧?这个我需不需要在什么count的mid需要吗?不需要,因为咱们这是什么力度来着,是访客页面力度,我页面固定下来之后,我前面的访客可能会出现重复的吗?不可能对吧,因为你要是出现了一个,比如说同一个访客,对吧,浏览同一个页面的这种记录,我往这张表里装载的时候,是不是早聚合到一起了呀,对吧?诶所以说这块儿不用再count了好了,那这样一来我们第一天的也就是最近一天的啊,然后呢,这个首页的浏览数。
05:46
咱们就求出来了,哎,非常简单啊好,那接下来我们往下走看第二一个,第二一个是什么。是good detail count,这个good detail count大家说好不好求它跟这个home count是不是应该是基本上是一样的呀,对吧?哎,我们只需要怎么做就行了,把上边的这个三的过滤条件稍微的给它,是不是调整一下就行了,对吧,咱拿过来这个呢,我稍微的调整一下,我把这儿的这个home给他干成啥就行了,Good底有是不是商品详情,那就完事了,对吧?来,那咱们现在也执行行走还一个效果啊,这个是339,然后上面这个是多少的,看一下这个呢是。
06:20
呃,400对不对,OK,那这是我们当前得到的这两个结果,诶最近一天的首页详情页的浏览数就都求出来了,好都求出来之后呢,咱们稍微的观察一下这俩词,咱们不用不用着急往下求,先观察一下他俩,他俩有什么特点,大家来看。是不是又是在对不同的数据进行相同的聚合呀,对不对,那按照我们之前的那个逻辑,我们可以怎么做呢?是不是可以先,诶把这个数据呢,我给它拿出来,对吧?我拿两份对吧?一份是谁?一份是这个配置ID等于home的,一份呢是配置ID等于good detail的,对不对?哎,完了之后呢,给他俩各自加上一个标识之后,我是不是直接来一个分组聚合,就能够同时把这俩值都求出来呀,咱们之前是不是经常这么干对不对,OK呢,咱这儿还能不能继续这么干呢?能不能咱们来试一下啊,OK,那按照我们刚才的逻辑,我们应该是能够给他合并的,来,我们往下走,我放在这个位置,那当然呢,我们首先得先拿到这两部分数据啊,一个是配置ID等于home的,一个是配置ID等于它俩有没有交集?
07:22
有交集吗?没有交集,他俩是完全独立了,对不对?所以在这儿我们还用炸吗?还用炸再过滤吗?不用,我直接是不是从这儿过滤,把这两块数据一块都给它过滤出来就完事了,对吧?哎,不用再炸了啊,OK,那这块应该怎么写呢?呃,你可以写一个or对吧?或者说咱们这也可以写上,写一个in是不是也行,对吧?In后边来个括号,里边是可以放这个集合的,对吧?一个是home,一个呢是哎,Good d Del,好了,那这样的两份数据咱们就都拿到了,拿到之后他接下来正正常可以怎么做,是不是直接按照咱们刚刚所提到的这两份数据的一个标识去进行分组统计就行了,对吧?好,那我问一下大家,你说这两份数据咱们的标识用谁比较合适呢?
08:03
是不是就用配置ID作为标识就可以,没没问题吧,OK,好,那所以咱接下来直接怎么做呢?我直接来一个葛如拜,葛如拜谁葛如拜配置ID好了,那这样一来是不是浏览首页的这个人是不是分到一组去了,浏览详情页的人是不是分到一组去了呀,对吧?然后在这儿呢,我们再各自的给他来一个count是不是那就完事了对吧?好,那现在理论上我们应该同时能够得到那两个数,诶你看有没有得到一个400,一个339,这刚刚刚才我们分开求得到的数据是一样的对吧?好,但是咱们得思考一个问题,我们得到这个结构跟我们这张表的一个要求的结构是一样的吗?不一样,对不对,为什么你看啊,咱这个表我要求什么,是不是同一个就是统计周期,比如说最近一天的这五个人数,我得在一行吧,对不对,那咱现在是不是给他放到一列去了呀,对吧,这个显然结构不满足最后的要求,所以在这儿咱们就不能这么去求了啊,数值确实没问题,但是你这个结构不对,那怎样能够得到我们想要的那个结构呢?
09:03
怎样能得到呢?诶有同学提到了,我们可以怎么做呢?可以sum if去做,怎么塞Miss,怎么sum if呢?其实很简单,大致观察我现在呢,把这个格过滤条件给它去掉,然后呢,我这儿还是同时保留,就是浏览首页和浏览详情页的这个访客啊,那在这儿我也先不建议count芯了,我先来一个星,咱们把这个明细数据先查出来,呃,也不查明细的,查明细有点乱,咱们就查两个关键字段啊,一个是m midd,一个是啥,一个是配置ID,咱们就查这两个关键字来大家看一下,你看啊,就是现在我得到的结果里边是不是既有浏览过首页的访客,也有浏览过详情页的访客呀,对吧?好,那我要是想呃,基于这个数据同时把两个人数都求出来,那我是不是就可以用有条件的这种count去做呀,对吧?OK,好,那比如说举个例子,等于后的我就给它来当个一去算,不等于后的我就当零算,然后呢,我直接给它求个和,那我会得到一个什么呢?是不是得到的值就是浏览首页的人数对吧?那反过来是不是就是详情页的人数啊,对吧?所以在这我们可以用sum if去做好。
10:04
那完了之后呢,我把这个就给它删掉了啊,直接来一个sum,往里边来一个if if里边配置ID等于home,那我就给它当一去算,否则我就按零去算,那这个其实得到的就是首页的论点数,然后呢,我CTRLD往下走,你看啊,这个是不是相当是一个字段,这也是另一个字段,它俩是不是就跑同一行里边两个字段去了,对吧?OK,好,那完之后咱们这也调整一下,哎,如果等于哎估对的要那我就记忆,否则我就记零,然后咱再把这个值给他查一下,看下个结果啊,你看是不是439值还是原来那个值,但是是不是已经跑跑到一行去了,对不对,所以说在这儿呢,咱们应该这么去做啊,行了,那截止到现在呢,咱们最近一天呢,啊,最近一天的首页还有详情页的浏览人数,咱们就都求出来了,好,那既然我能够通过这样的一个三号求出来,所以前面这两个是不是就没有意义了,对吧,咱们给它删除啊,直接删掉啊,然后呢,上边这诶呃诶把删多了啊,删多了啊,诶我这个好像碰哪了,刚才我再回过来啊呃。
11:04
咱们找一下,OK,没问题,呃,来,我把前面这俩注释还给他留着,因为我们这求的是这俩人数了,对吧?行了,那截止到现在这俩人数就完事了,那我们现在继续往下看,下边该求谁了,该求card count了,对吧?OK,好,那我们现在要求的也是最近一天的card count加购人数,那它对应的业务过程肯定是加购对吧?那我们是不是就得去找一找有没有加购的汇总表对吧?那咱去找一下DWS加购应该是位于交易域的对吧?OK,那这个交易域的汇总表它有点多啊,这一大堆,这是不是都是交易域的呀,对不对?那完之后呢,我们应该找谁找car a啊card,谁是card,是不是只有它没问题吧?OK,好,那这个card eye这是一个什么力度呢?这是一个。用户力度对不对?OK,好,那我们现在要求的是啥?是加购的人数对不对?OK,那你说通过用户力度这样的一个表,能不能统计出来人数,能吧,一行是不是就是一个人对不对?那所以说我统计有多少行,那其实咱们就能得到有多少人嘛,对不对?所以说在这儿呢,我们用这张汇总表是能统计出来的,他分ED和ND,我们现在应该用ED的,对吧?那这张表的表结构大家现在能不能回忆起来。
12:13
点开看一下啊,里边一行就是一个用户对吧,后边是不是统计了他在这一天里边的这个什么加购的次数和加购的件数啊,对吧?OK,那是不是我们能这样去说,只要这个user ID出现在了我们这张表的一个分区当中,就一定能代表这个人在这一天里边是加过购物车的,能这么说吧。没有问题吧,这是一地的表,是没有任何问题的,对吧?那所以说我这儿呢,想统计比如说某一天的加工人数,我是不是只需要找到相应的分区,然后呢,直接进行抗的星,那就完事了,对吧?诶这个相对比较简单,好那接下来我们继续往下进行,我们求一下这个car count ctrl c我拿过来啊,诶给它放在这,然然后呢,给它注一下,呃,然后我们直接开写词,好,From应该是DS层的交易trade对吧?然后后边呢,应该是呃,User用户力度card,也就是加购物车这张表,当然我们这儿用的应该是1D啊好,那我要求的是最近一天的,所以说我只拿它一个分区,零六杠幺四,那上面呢,我就直接怎么做就行,直接抗乃芯就行了吧,这个没有问题,按照我们刚才的分析,因为你这张表一行,它就是一个加购用户嘛。
13:21
对吧,有多少行就有多少人,好了,那这个加购的人数也就求出来了,这个比较简单,好,那接下来我们继续往下看,下边给谁了,下边是不是该这个什么加购下单的人数和支付的人数来对吧?那问一下大家,大家还记不记得我们在这个DWS层对吧?也有一个加购,呃,也有一个这个这个下单的业务过程的,然后呢,用户力度的一个回总点,大家还记不记得。有吧,咱们去找一下啊,大家看这。这个是不是就是一个诶下单对不对,这个业务过程,然后呢,是用户力度的一个汇总表嘛,对吧?OK,好,那你想一想,你算这个加购人数的方法是不是应该跟我们刚刚算这个下,呃,你算下单人数这个方法跟你算那个加购人法是不是应该是很类似的呀,对吧?因为他来的表的结构是不是就很像啊对吧?来咱们点开看一下啊,诶大家来看,那这里边我们统计了呃,这个用户的什么信息啊,是不是统计了每一个用户在最近一天里边的什么下单的次数,下单的件数,还有花的钱呀,对吧?诶是这样的,OK,那我们能不能说OK,那在这张表呢,一个分区里边出现一个U的ID,我们就能表明他在这一天里边是下过单的呢,能不能说是能说的没有任何问题对吧,那所以说在这儿了,我们也是直接统计一下,诶这个行数那就完事了啊这个我就不再单独写了,我们直接把这个复制过来,咱只需要把这儿是不是给它调整为order,这个下单的一个过程,那就完事了,对吧,这就是咱们得到的下单的人数,好,那支付是不是也是同理,因为大家来看我们这是不是有一个。
14:49
支付的用户力度的汇总表啊,对不对,所以说在这儿也能给他求出来啊,来我们直接呢给他拿过来就行了,我这个就不再一点点去去去去去分析了啊,咱们直接拿过来,我把这个O改成是pay ment,那就完事了呀,对吧?好了,那截止到现在呢,我们最近一天内的,然后呢,首页的浏览人数,详情页的浏览人数,加购的人数,下单的人数,还有支付的人数,咱就都求出来了,诶其实你光算最近一天你会发现非常简单对吧?好,那接下来我们继续往下走,下边呢,咱是不是得把这个需求做完呀,对吧,我们还得考虑到七和30,那七跟30我们应该分别怎么去算呢?来咱们一个一个分析,咱现在呢先看谁啊,先看咱们这个首页跟详情页的浏览人数,OK,那刚刚我们算出来的是它的1D对吧,那现在呢,我们需要去考虑7D跟30D怎么算,咱还是分开啊,先看7D啊,先看7D7D怎么算呀。
15:46
首先7D大家说我能不能从这张表里边去取分,也从1D表里取分能不能行,比如说我取它七个分区对不对,取七个分区,然后呢,我也把这七个分区当中是不是浏览首页和浏览详情页的人数给它找出来啊,对吧?那找出来之后我再进行一个这样的聚合统计,哎,嗯,大家说能不能得到这个最近七天内的这个结果呀,能得到肯定是能得到的,对吧?哎,但是呢,你这么去做的话,那我们建之前的那个ND表是不是就没有意义了呀,是这个道理吧,咱们N地表是不是已经对一地表的什么七天呀,或者是30天的数据,是不是已经做过聚合了,对吧?啊,你之前聚合了,完了之后,你现在还不用它,你再去重新聚合一遍,那这个N地表有什么意义呢?对吧,所以在这我们肯定不能再用一地表了,我们应该找到与之相对应的那个N地表,OK,好,那完之后呢,我们来看一看这个N地表这块怎么去处理啊,首先我们select一下完之后的让找到谁DWS层之后呢,我们找到谁找到。
16:47
好,是不是应该是这个流量域t raficc对吧?然后呢,找到配置visitor,然后呢,配置为右ND对吧?那完了之后我们只要拿它几个分区就行了,我们只需要拿它是不是一个分区就行了呀,对吧?因为它最近一天的分区里是不是就已经存放了上边这个一地表的最近N个分区的聚合结果了,对吧?好,那所以在这儿咱们只拿一个分区2020杠零六杠幺四对吧,这块你要知道,咱们哪要想要想知道我们哪几个分区,就一定得明确什么呢?就咱得知道这个表的分区规划是什么样的,对吧?啊,你必须得熟悉它,你才能知道你怎么用它吧,对吧?好,那现在我们拿一个分区拿过来之后我们怎么处理。
17:27
怎么处理?啊,OK,是不是咱也得先把那个,呃,就是浏览过首页,浏览过详情页的这个访客给它找出来啊,对吧?所以是不是也得这样去做一个过滤,对不对?好,那过滤完之后呢,咱们怎么处理啊,先看一下咱们这得到的数据是什么啊,我也是先拿一个关键的数据mid,再拿一个配置IDOK,好,那现在咱们拿过来,好,那咱们现在是不是就拿到了?呃,在最近N天里边浏览过首页的访客和浏览过详情页的访客呀,对吧,是不是就拿到了对不对?好,那你拿到之后我能不能像之前那样,对吧,也直接来一个sum if,把这两个值给它求出来呢?
18:07
哎,能不能直接这么求来直接回收看一下咱们这个结果,好像也能得到一个结果,对吧?OK,好,那咱们能不能直接这么写,其实对于7D来说咱们不能这么写,为什么对于七弟来说不能这么写呢?道理很简单,因为咱们来再把它查一下啊,就我这边确实出现了一个访客,后边跟了一个后叶,对吧,但是我们不能保证对吧?这个人在最近七天里边一定是浏览过首页的,对不对,这个大家应该是记得的,OK,为什么呀,因为我们往这种ND表里边装载数据的时候,我们拿的是30天的数据进行了一个聚合,对不对?所以说就可能会出现什么情况呢?这个人在最近七天里边没浏览过这个首页,但是呢,他在最近30天里边是浏览过这个首页的,对不对,那他是不是也会位于这儿啊,对吧?哎,那所以说你直接这么统计,那你统计七天的结果是不准确的,咱们已经说过了啊,所以在这儿咱们应该怎么去做呢?诶,确实可以用some if这个语法,但是你这里边的条件是不是得多加一个呀,对吧?OK,不是说我的配置ID等于home就一定后。
19:15
是不是后边还得再加上一个啥,加了一个啥,哎,是不是加上一个尾U抗的7D,这个尾U抗的7D,它的含义是什么呀?是不是就是这个人在最近七天里边浏览首页的次数啊,对吧?OK,那你得保证这个值他得是怎么样的,大于零的,我是不是才能确保这个访客它是在最近七天里边浏览过首页了,对吧?这样的我才能按一算对不对,那其他的我就不能按一算了,对不对?这一点咱们也一定要注意一下啊,所以在这儿呢,你得多加一个判断条件,好,那同理,他这儿是不是也得加上一个,诶这样的判断条件呀,对吧?OK,那这样一来我们才能得到准确的最近七天内浏览首页和详情页展数,当然咱们这俩值他没变啊,诶,这是因为我们自己数据的问题啊,因为咱们数据只有一天了,对不对,这个大家理解一下啊,当了,那接下来我们就继续往下走,七天呢,咱们算完了之后,我们再来看一下30的,30的,怎么30跟他是不是有点类似啊,对吧,我们只需要怎么做就行,我把这个30呃,这个7D改成30D。
20:15
是不是就完事了,对吧,当然说实话啊,我这不写这个行不行。我不写行不行,我不写它也行,为什么?哎,因为道理很简单,如果说在我们的这个,诶,这张表当中啊,某一天的分区当中,对吧?如果出现了一个人后边跟了一个首页,我一定能断定对吧?断定什么?就是这个人在最近30天内是浏览过首页了,对不对啊,但是你不能断定他在七天内是浏览过的,所以在这样的你30嘛,诶肯定能断定,那所以说你就不用再加那个额外的判断条件了,当然我加上它也不错,我加上它也不错啊,是这样的,为啥呀,因为这个尾优看的30题是不是肯定是大于零的呀,对吧,那所以加不加都可以啊,在这儿呢,咱们给他留着吧,好了,各位同学,那截止到现在,我们这个一七三十的首页和详情页的访问人数就都算出来了,当然算完之后呢,我们正常情况下,你可以怎么去处理这个最终的结果呀,你要注意是不是一七三十的,我是位于不同的行的呀,对吧,那正常情况你是不是得把这三个紫砂群给它优念在一起啊,对不对,OK,那当然呢,我们大家应该是能够发现的7D跟30D。
21:18
它俩应该是出自于同一个表,同一个分区,对不对,然后呢,做了相同的或者说类似的这种聚合对不对,那它俩应该是有联系的,有联系我是不是应该想办法先把它俩给它合并一下啊,对吧,合并完之后咱们再去做一佣金,好,那现在来分析分析它俩咱怎么去合并。哎,他俩怎么合并。咱们合并是不是还是得看它们的区别和联系,对吧?来咱们先看它的联系,先看它有什么相同点啊,相同点你注意观察一下,首先第一个。是不是从同样的一张表里取数对不对,是不是取的是同一个分区,然后Y2过滤条件是不是同样的Y2过滤条件啊,对吧?那也就是说目前来看这两个子查询他们拿到的这个数据的行是完全一样的,咱们一定要注意啊,就是咱们去呃去从表里面拿数据的时候呢,我们一定要明确啊,就是你拿的行还有列都是什么,对吧?目前我们能看到的他拿到的行是完全一样的,对吧?因为你的VR过滤条件,你只过滤什么。
22:18
VR过滤是不是只过滤行啊对吧?能理解吧?OK啊,这个大家理解一下啊,OK,那我要是选不同的列是根据什么呢?是不是根据你select你选,你想选哪个列你就select哪列,对吧?所以Y这边我们能看出来这两个子查群它们用到的行是完全一样的,好,那接下来我们继续往下看,那他们还有什么相同点呢?相同点就是是不是聚合,聚合运算是相似的呀,对吧,但是不完全一样对吧?我用到的函数都是萨if,这个没什么区别对吧?但是哪不一样呢?是不是聚这个聚合函数当中,我聚合的字段是有所区别的呀,对吧?OK,在7D这个子查询当中,我聚合的是维U抗的7D对不对?OK,那在30这个里边呢,我聚合的是VU抗30例对不对?OK,那这就是咱们当前这两个circle的一个区别和联系,OK,好,那完之后咱们来琢磨琢磨,看我们能不能哎把它俩合并到一个circle口,然后呢,同时得到这俩结果。
23:14
咱们来分析分析能不能行?这个好像跟咱之前处理的情况不完全一样,对不对,咱们之前处理情况都是什么样,都是什么样来着,都是OK,我这个拿的数据是不一样的,但是聚合逻辑,包括这个聚合函数,包括里边的度量值是完全一样的,对吧?哎,之前这是咱们之前处理的情况,但现在这个情况跟之前相比有所区别,诶,那这个我们应该怎么处理一下呢?哎,其实我这儿呢,诶是这么去处理的啊,来大家听一听,看看能不能理解啊,首先第一个,那他俩用到的数据是不是完全一样的呀,对吧,也也不能说用到的数据啊,应该说用到的行是完全一样对不对,那所以说我首先先干啥呢?我先诶把这样的两部分数据啊,相同的行,我给它拿出来,OK,好,那这儿我放一份,那这儿我也放一份,OK,那这是相同的行,但是你要注意,那他们在聚合的时候,是不是聚合的不同的列呀,对吧?OK,注意观察,那他们聚合函数当中用到的列其实就是俩,一个就是配ID是不是一个就是那个count呀,对吧?啊这个也是配置ID,也是看的对吧,也是他们其实就是需要两个列,对吧,完了之后呢,你注意观察上下这两个两个子查询对吧,那他们对这个配置ID拿的是不是都是同样的字段呀,对吧?所以OK,我这两部分数据呢,我给他分别拿什么呢?哎,拿俩字段,第一个字段就是配配置ID,我这个都拿配置ID,这个是没啥区别的,没没问题吧,因为上下俩是不是用的都是配置啊对。
24:37
OK,好,继续往下走,那第一个自查询,他这用的是不是尾U抗的7D啊对吧?好,那完了之后呢,我在第一部分数据里边,我拿第二个字段的时候呢,我就拿v u count7D啊是这样的啊,这边对应的是v u count这个字段啊好,那你下边这部分数据,你拿这个,呃,VC字段的值的时候,你拿谁呢?你拿那个尾u count的30例,哎,是这样的,诶也就是在那呢,我先去构造一下这样的一份数据,好你把它得到之后,那接下来我们就可以干啥了,接下来咱是不是就可以给他俩各自来一个标识对吧?这个标个七,这个标个30,完事之后咱们是不是直接进行一个sum e这个BY,然后聚合就完事了,对吧?Go by,那我就按照它进行分组,好,那我完了之后呢,我聚合,我对谁聚合呢?我是不是就对这俩字段进行聚合呀,对吧?OK,那聚合的时候是不还是用这样的一个聚合逻辑,因为上下都是一样的嘛,对吧?OK,你看你要是这么做的话,你看啊你七这一份数据对不对,你这样。
25:37
聚合的时候,你相当于就是聚合的是谁,是不是就是尾U抗的7D的值啊对吧?OK,好,那你下边这个呢,你聚合的时相当于是不是聚合的就是尾U3尾U抗的30D这样这样的一个值标,对吧?哎,要是这样的一个逻辑啊,OK,好,那咱接下来呢,就把这个思路呢给他去实现一下,咱们首先先拿到这样的一份数据,然后呢,再对它进行一个分组聚合,好那这个怎么拿呢?来我们看一下啊,首先我们select,然后呢,From from哪张表,那这块是不是都是ND,都是这个分区,然后都是这过滤条件,对吧?所以在这咱直接给它拿过来就行,然后我是不是先需要拿到这样的两份相同的行啊,对吧,相同行,那我直接来一个review,后边跟上一个ex pro explo里边放上一个瑞,里边咱来一个E,来一个七,来一个30,后边呢,来一个t s this days好,那这个应该没啥问题啊,OK,我们诶,当然呃,当然不用拿七一七三十,咱们拿拿多少斤了,七个30就行了,对吧,我们只要两份啊好了,那现在呢。
26:37
我们已经就是把是不是这部分行给它炸成两份了呀,对吧?好,那两份之后,我们刚才说了,我们拿列是不是拿俩列就行了,对吧?那一个就是配置ID,一个就是u count配置ID,我不管是哪一份,你是七这一份也好,是30份也好,我是不是都直接拿配置ID啊,对吧?诶,但是那个we you count你拿的时候你就得区分一下了,你得保证七这一份你拿的是7D的count,那30这一份得拿的是30的count,对吧?那这个怎么去实现呢?来我们看一下这块怎么做啊,首先先拿配置ID,配置ID刚才说过了,我们不管是七还是30这一份都拿配置ID就完事了,那完之后下边这个尾看呢,应该怎么拿,是不是得区分一下呢?对吧?哎,你那个呃,七七天的,哎,那一份你就得拿7D的,那30这一份呢,你就拿30D的,这个怎么区分呀,咱们用什么去做就行,我用if或者说用一个kiss问是不是就行了,对吧?但是因为我们这儿只有两种情况,除了七就是30,所以你用if就完全能够实现,但是if呢,看起来可能不是。
27:37
特别的清晰啊,这边我让为了让大家更清晰一点呢,我就拿case啊来我们case,然后后边是不是补上一个N的呀,对吧?好,那case我们按照谁判断呢?是不是就按recent this进行判断对不对?OK,那如果recent,呃,Recent death,它等于七,那我就拿谁,我就拿那个re count7D对吧?如果它等于30,好,那我就拿谁呢?我就拿v u count是不是那个30D啊对吧?好了,那这样一来的话呢,注意观察我们这儿返回的这个结果应该是什么样的啊,首先咱们现在应该能看出来,咱这个结果返回它肯定是一个行有行有列对吧,是一个虚表对吧?OK,那我们的列应该只有两列对吧?一列就是这个配置ID,好,那还有一列是谁呢?咱这起一个别名,我们就叫做尾u count,对吧,一个配置ID,一个是尾,就这俩列对吧?好,那行呢,行,我们是不是得分两部分去说对吧,一部分行哎,我们对应的是这个七这一组对吧,还有一部分行呢,我们对应的是30这一组,这两部分。
28:37
乘数是完全一样的对不对?OK,好,那完之后再看这个每一行里边这个字段的值啊,在七和30这个两部分数据里边配置ID是完全一样的,没没啥区别对不对,但是维u count的这个字段的值就不一样了,在七这边呢,我实际上这个维抗下边是7D对吧?在30这边我实际上是30D,好,那现在这两这个这份数据咱们就已经拿到了,拿到之后我们接下来就可以干啥了呀,是不是直接进行一个分组聚合,那就OK了呀,对吧?诶是这样的,OK,好,那接下来咱们就去实现一下啊好,那现在你要对它进行分组聚合,首先得先来一个子查询,好,我们给它放在括号里边,这个呢,咱们往前推一下啊。
29:17
拿过来,那这边呢,我们起一个别名叫做T,然后后边select之后呢,跟上一个哎,From t from的时候我们就可以是不是葛入拜了,对吧,葛入BY谁是不是葛入by re这个days就行了呀,对吧,但是咱们这能选这个字段吗?选不了为啥选不了呢。因为你这儿你没选出来对吧,你因为你T1里边是不是只选了俩字段呀,对吧?所以在这儿你得把re给它选出来才行,好,那选出来之后咱们就能对它进行分组了,分完组之后,我们上面可以先把re内选出来啊,之后是不是就能够直接把这个聚合逻辑给它复制过来了,对吧?当然这边呢,我们前后两个都是基本是一样的,我随便拿一个就行啊,给它放在这儿,但是里边的字段咱们是就不能再去区分这个30和七了呀,对吧?他们现在统一都叫什么,都叫尾u count了,对吧?拿过来诶这个拿过来好了,那这样一来的话呢,我们就能够同时把这两个人数都给它求出来了,OK啊好,那完了之后求出来之后效果是啥样的,我们一起来看一下啊,来走。
30:17
好,大家来看,你看是不是就得到了最近七天内首页详情页的浏览数和最近30天内首页和详情页的浏览数啊,对吧,它俩是一样的,因为我们只有一天的数据嘛,这个大家理解一下啊,好了,那截止到现在我们七和30这俩三口咱就给它合并到一起了,那合并到一起之后,上边这个咱就不要了啊,给它去掉,好,那完了之后,那现在是不是首页的一七三十,还有详情页的一七三十的这个人数都得到了,对吧?得到之后,当然上下他们应该做一个什么操作,他们应该是得做一个是不是union的操作呀,对吧?好,那现在咱们给他简单的union一下啊,比如说在这儿呢,我来一个union,那咱们需要去除吗?不需要,不需要就用all就行了,来直接回车看一下这个结果啊,好了,你看我们就同时得到了最近一七三十首页详情页的订单人数了,OK,那这就是咱们最终的一个结果,最终一个结果啊,好了,那他完成之后我们再继续往下看啊,那当然呢,呃,再说一句啊呃,就是这种写法呢,可能大家自己想可能想不到对吧,想不到也没关系,咱们就是。
31:18
分开写,我再一全部进行union是不是也没问题啊,对吧?OK,这个咱们理解一下就行,我们继续往下看,下边呢,就是这个car count了啊,这个cut count咱们也是求出来了一天的,那这个七天的跟30天的我们应该怎么求呢?来分析分析啊,先看一天的,哎,已经求出来了,那接下来我们求七和30,呃,杠杠来一个七粒,然后杠杠来一个三十力,对吧?来吧,先看七七,这个咱怎么求。啊,这个怎么求啊,首先那大家说我说七天,我我在算七天内的加格人数的时候,我能不能也从一地的表里边取呢?也能对吧,你取几个分区呢?你要从一列表是不是就得取七个分区啊对吧?取七个分区完之后呢,你需要你能直接看到形了,不能你得取个重对吧?哎,你得看看第下一看,看了一下这个UID,你就能得到最近七天内的价格数,但是我们肯定不能这么做啊对吧?你这么做是不是相当于ND的表又白做了呀,对吧?好,那所以说我们应该去拿ND的表啊,OK,那首先我们找到select from dws层应该是交易域的trade,对吧,应该是用户力度,然后加构,然后呢是ND的这个表,好,那完了之后我们拿它几个分区,是不是也是拿它一个分区就够了,对吧,零六杠幺四,因为它这一个分区就已经有了1D表,是不是最近N天的聚合结果了,对吧?好,那现在我们继续往下进行,下边怎么办?OK,那大家还记不记得,就是咱这个分区当中,我的这个数据是啥样的,记得吧,来我们打开啊。
32:44
OK,那这是我们拿到的这个N地表这一个分区的数据,对吧?里边记录了什么?是不是记录这个人在最近七天里边的加构的次数,加构的件数,最近30天里边加购的次数,加构的件数对不对?OK,那我们现在要求的是什么?最近七天里边加购的人数,哎,这个怎么去求?哎,能不能说OK,我这出现一个人我就一定能,哎说明什么呀?他在最近七天里边是加够够的,是不是不能这么说呀,对吧?所以说我们应该怎么去做呀?
33:11
是不是也得做一个有条件的count呀,对吧,你直接看看你得到的结果是不准的,对吧,咱们得有条件看OK,所以在这儿呢,咱们用一个什么就行了呢?我其实用一个是不是some if就可以啊,对吧?OK,那在这儿呢,我们可以来一个sum,诶if或者说你也可以直接怎么做呢?啊,你也可以直接是不是在下边我来一个and的过滤也行啊,对吧?诶这块都可以啊,那在这儿呢,我们先用一下这个some if啊some if if里边咱怎么写的,应该是car,它是不是at count,它怎么样才行,他得是大于零对不对,我才能证明是不是这个人他在最近七天里边是加过购物车的呀,对吧?好,那完之后这时候我再给他按一去算,否则我就统一统通通通都按零算,OK,那这样一来我们就得到了最近七天内的加购人数了,诶是这样的啊好了,那最近七天内的加工人数得到了,那最近30呢,那大家是不是也就会求了呀,对吧,我们把它拿过来,拿过来之后这个怎么处理一下,这个是不是直接改成30例。
34:11
诶,那就完事了,或者说这儿不不不用这个判断是不是也行啊,对吧,我直接看了其实得到的结果是不是也是最近30天的那个加高的数,对吧?诶这个大家应该是能理解的,好,那这边我写不写这个条件结果其实都是一样的,好,我也是给他留着啊好了,那这样一来的话呢,我们这个最近一期30天内的加购人数也都求出来了,求出来之后,那显然。这俩是不是也能合并一下啊,对吧?诶,那他俩合并的思路,你说跟刚才咱们那个页面浏览人数的合并思路是不是应该是一样的,应该是一样,因为他俩情况是相同的啊,你看它俩属于什么样的情况,它俩属于这样一个情况,首先OK,这俩我的过滤条件,还有我的表是不是完全相同,对吧,也就是他俩拿到的数据的行是完全一样的,好,那我这个聚合逻辑呢,聚合逻辑当中聚合函数是完全一样的对不对,但是谁不一样的,聚合的字段是不一样,对吧,相当于它现在又是在对什么呢?在对相同的行里边,不同的列是不是进行相同的一个聚合呀,对吧,还是还是这样一个操作,所以说我们这儿应该怎么办呢?诶,先去拿这样的两份数据对不对?OK,这两份数据呢,对应的行是不是都是这个分区的行啊对不对,但是我第一份呢,我只我我拿哪个字段呢?拿列不一样啊,第一份我拿是不是car I的7D这样的一个字段,对吧?那第二份呢,我这个列我拿一个car I是不是30D这样个字段对吧。
35:33
拿到之后我们仍然是分组聚合,OK,跟刚才是一样的操作,那接下来我再给它实现一下啊,首先我们我就基于上面这个改一改啊,来CTRLC咱给它拿过来啊,拿来之后呢,我们怎么调整一下呢?我们应该是首先我需要先是不是给它炸成两份对吧?来来我们来一个let re,那其实我们这儿这样吧,咱们不只不不基于他改了,我们从头写吧,咱们从头写要更清楚一点啊来我先找到咱们的这张表的这个分区,这个应该没啥可说的好,那完之后呢,我应该怎么办,是不是先给它炸成两列对吧?来说呃,两两份啊,Let为you,然后后边加上一个ex p explode里边我们给它放上一个,里边咱只需要放一个七,还有一个30就行了,那后边我们来一个t re days好了,那现在数据已经由原来的一份变成两份了,那接下来咱是不是就可以去拿我们所学的字段了,对吧?我们要拿的就是card艾count,但是只不过呢,我们得分分情况去拿对吧?七那一份拿这个,30那一份拿这个,虽。
36:33
是不是又得用一个case这样的一个操作量对吧?诶case我们后边来一个N的,中间呢,我们补上一个问啊,然后后边的再来一个Z对吧?那问什么呢?如果是七,那我就得拿是不是这个字段对吧?CTRLC咱们给它拿过来好了,那CTRLD,那如果是30,那我就得拿30D这个字段啊OK,好,那现在呢,我们就已经拿到了这个所谓的car的I count了,对不对?好,拿到它之后我们接下来干啥呢?接下来是不是就可以分组然后聚合了对不对,好,那现在当然我们要想对这个分组,我得先把它取出来啊好,那现在我们起一个别名给它放在等查群里啊跟这X我给它放括号里走,你那这个呢,往前退一下,好,那现在我们给它起个标位叫T1啊来,我们直接来一个select from这个T1之后咱就可以按谁分组了,是不是按照recent date分组,然后上边呢,是不是就进行一个这样的相同的聚合操作就OK了呀,对吧?来CTRLC咱给它粘过来,呃,然后呢,这边往下推一下啊呃,粘错地方了。
37:33
诶,应该是放在这个位置啊,CTRLV好,咱们拿过来,拿来之后呢,我们这里边是不是不能再区分30和七了,对吧?统一现在都叫做car艾对不对,那当然了,在这我们也应该把这个re选一下,那这样一来我们就能够,诶这边应该是有一个字咱们呃没眉笔选啊诶跑哪去了?诶我的circle跑哪去了?啊,就在这呢,对吧?呃,这个是为什么呢?咱们来看一看啊呃,布尔啊,我没写啊,哦,没写全是吗?呃,Some if,我看下哪的问题啊,是第case啊,Case头咱没有写那啥是吧?啊,OK case,呃,然后这儿没写东西是吧?OK啊这那应该是应该是re吧,对不对,OKOK,好嘞,那接下来我们再继续往下走,再执行一下,诶那现在咱们这个结果是不是就已经是正确的了,对吧?OK,那七那30我这个加构的人数就都已经得到了啊OK,好,那这个完成之后,那上面咱们分开写的这个是不是也就不要了对吧?来咱们给它去掉,去掉之后是不是应该是把ED跟30还有7D的给它union一下就行了,对吧?那这个咱们也是给它补上一个,这个一指代的就是re等于E啊好,那上下我们应该做一个union all的一个操作,对吧?OK,那直接回车。
38:45
诶,好了,那现在最近一期30天内的加购人数咱们也就都得到了,好,那得到之后咱们继续往下走啊,你想这个加下单的人数,还有这个支付的人数,你说他们的处理方式跟这个加购是不是应该都是完全一样的呀,对吧?所以后边呢,我们就不再一点点去写了啊OK,好,那假定我们现在把这些东西都已经算完了,那接下来我们最终需要做一个什么操作呢?
39:10
就是招文麦对吧?OK,我们需要把这四个自查询相当于是啊,给它照在一起,那当然join的时候我们得有关联条件啊,那咱这用谁作为关联条件,是不是都用recent days那就完事了对吧?同一天的或者叫同一个统计周期的这五个人数放在一行,那就完事了。OK,好,那这就是咱们这个,诶最终的一个思路,呃,我就不再写了啊,咱直接看一下文档当中的最终答案就行了,来我们找一下,应该是漏斗分析,然后呢,我们往下走,找到这个完整的词啊,这个词候可能看起来有点长啊,CTRLC,但里边很多逻辑都是重复的啊呃,那这样吧,我就把我自己写的这个都给它覆盖掉了啊,咱们直接以文档为主就可以了,来,CTRLV,咱放在这个位置好了,那简单的过一下吧,这个大字路有点长啊,来看一看它是怎么写的啊,来首先我们先看第一个自查询,注意观察这儿,这个从这儿到这儿,这是统计谁的,是不是统计那两个页面浏览人数的,对吧?这个跟刚才咱们写的应该是一样的,你看这个是ED的,下边这个union是谁?Union是不是咱们那个七和30的呀,对吧,写法跟刚才咱们。
40:10
写的是一样的,那下边这个呢,来往这走,这个其实应该是在统计那个加购的人数吧,对吧,同样这个是一天的最近一天的加购人数,那这个呢是最近七和最近30的价格,跟咱写的也是一样了,那下面呢就分别是下单的还有支付的了,我们就不再一个个看了啊好了,那最终他是把这些表呢都给他做了一个诶10N的操作照在一起了,最终得到我们所有的字段,再把数据呢写到这照片就完事了,好了,那这就是咱们漏斗分析这个需求的全部内容,来,视频我停一下啊。
我来说两句