00:00
好,接下来我们开始编写用户主题的数据装载语句啊,那他这同样分为首日装载和每日装载啊,那我们还是先看这个首日啊,好,那假定今天的日期就是2020年6月14号啊好在我们开始写这个色后之前啊,咱来先分析一下具体的思路啊好,那当我们拿到这个大宽表之后啊,我们应该从哪入手呢?好,咱来一起分析一下啊,那家都知道啊,那这个大宽表当中绝大多数的字段是不是都是聚合值啊,对吧,那对吧,你比如说什么log in count,什么card count fair count,这是不是都是聚合值,没错吧,那大家思考一下,那这些聚合值它都是谁的聚合值啊?那是不是就是DWD层的各个市实表的度量值的聚合值啊?没错吧,啊,那所以说咱们这儿的一个主体思路啊,就是先分析一下咱们的每个字段是由DWD层的哪个实施表聚合而来,那具体呢,其实就是每个字段应该从哪张实时表取数,对吧?啊OK,那咱们分析完之后呢,我们在逐个字段的T进行汇总统计,那统计完之后呢,再把每个字段的结果召唤到一块儿,那这样一来就能得到咱们的最终结果了。
01:17
好,接下来咱们就开始啊,我们先看第一个字段log count log呢指的是登录次数啊,当然我们具体要统计的应该是啥呀?应该是每个用户每一天登录的总次数,对吧?OK,那这是我们现在要统计的第一个字段啊好,那现在咱们来分析一下登录次数这个字段我们应该从哪张表取数呢?那这个呢,应该取自于一个日志表啊,那有同学可能会想了啊,那日志表咱也不是维度模型当中的事实表,刚才不是说了吗?这些字段是不是都是由DWD层的日志表聚合而来啊?没错吧,哎,但其实但是你想一想啊,我们的日志表实际上也是事实表啊,为什么呢?因为它也满足我们之前那个要求啊,对吧,事实表当中是不是要求存储最明细的数据啊,啊,那我们的日志表当中存储的其实也是明细数据啊,只不过呢,咱的日志表啊,咱们做了一个操作什么一个什什么样的一个操作呢?哎,咱其实把所有的维度信息,你像什么code brand China is new model的等等等等,这些都是啥,这些是不是都属于是维度信息啊,对吧,咱们把这些维度信息呢,全部都退化到了,诶我们这个日志表当中。
02:34
是这样的啊,那所以说呢,那日志表也是市值表啊,这个大家理解一下啊,好,那所以说这张表呢,出自于一个日志表也没有什么问题啊好,那接下来我们分析一下,它到底应该出自于哪张日志表呢?那有同学会想到啊,那应该出自于d wdog,那为什么会选择它呢?啊,因为这张表当中每行数据是什么?是不是就是一次启动记录啊,对吧?啊,那我们要想统计每个人啊,他每一天的登录次数,那我们找到所有人所有日期的启动记录是不是就OK了呀?
03:08
对吧,这么想其实是没有问题的啊,但是这里边呢,有一小细节大家需要去注意一下啊,就是启动日志啊,实际上是我们移动端应用所特有的一种日志,那什么意思呢?也就是说P端是没有启动日志的,那所以说我们使用dwd SR log去统计每个用户的登录次数呢,那我们会把PC端的给丢失掉啊,那所以说这个DW2LOG呢,不是我们的首选。啊,那我们应该选择谁呢?那我们最终选择的呢,是DWD配置啊,那为什么会选择这张表呢?来我们点开看一下它的数据啊,那首先咱们先明确这张表当中每行数据是什么,它的每行数据呢,是一个页面访问记录啊,这是行,那接下来呢,我们再来看一下它的字段啊,这里边字段很多,我们挑重点去看一下就可以了啊,我们先看第一个字段啊,User ID,那当然大家都知道user ID是什么,对吧?啊,当然我在这儿要给大家说明的是什么啊,有些记录里边啊,它的user ID是no。
04:09
那如果一条记录他的user ID为,那这表明了什么呀?那是不是就表明了这条日志它是由一个访客产生的呀,对吧?啊,那反之,如果这个U的ID不为闹,那就说明这条日志是什么,是不是由一个登录用户产生的呀,对吧?在这儿大家要搞清楚啊好,那它完之后呢,我们再往后看啊,再来看两个字段啊,这两个字段呢,分别是last配置ID和配置ID啊这两字的含义是啥呀?Last配置ID指的是上页的页面ID,对吧?那配置ID呢的是本页的页面ID啊,在这儿呢,相当于是由上页是不是跳到了本页啊对吧?OK,那接下来呢,大家来注意观察一下啊,是不是有些记录它的last配置ID也是no啊,对吧?OK,那配置ID这说明什么?说明啥?说明没有商业ID对吧?没有商业ID那就说明什么,那是不是就说明这个页面是当前绘画的第一个页面呀。
05:10
没错吧,啊,那所以大家想一想,我们现在是不是就可以使用user ID不等于,并且ID等于now去作为一个登录的标志了呀,对吧。你想想是不是这么一回事啊,OK,那当然是没问题的啊,OK,那所以说我们就最终定下来了啊,咱们的第一个字段login count,从DWD配置log当中取数啊好,那接下来我就开始编写这个啊好,我们首先是select from dwd配置log啊,对吧?那注意啊,在这我们需要的是全表的数据,因为是首日装载对吧?啊,那所以说我们就不需要去过滤分区了啊,那其余的过滤条件有啥呀?那应该是user ID is not not对吧?然后并且last配置ID is no,没错吧?好,我们现在呢,就相当于拿到了每个用户每一天的登录记录,对吧?那我们最终要统计的是啥呀?是每个人每一天他的登录次数是多少对吧?那所以说我们得怎么做,是不是得分组统计啊,对吧?那按谁分组呢?那是不是应该是按照user ID加登录日期分组啊,对吧,咱把先把user ID拿过来,那登录日期我们写谁呀。
06:19
那实际上呢,这个登录日期和咱们这张配置lo表的分区字段地T的值就是一致的啊,那所以在这呢,我们是要写地梯就可以啊,那为啥它俩是一致的呢?咱们分析一下啊,那首先我们先明确啊,这张表它的分区规划是什么样的,是不是按天分区。没错吧,那每天的分区里存放的是什么?是不是就是当天产生的日志啊,没错吧,那你当天登录的日志是不是就是在当天产生,那所以它就会放到当天的分区当中,那所以说咱绕了半天,最终能得到一个这样的结论啊,那就是在登录日期是与这个分区字段地T的值是一致的,那所以在这呢,我们直接按照DT分组就可以了啊好,那分完组之后呢,上面选择我们所需的诶DT字段和user ID字段,那接下来呢,我们应该用一个什么样的聚合函数啊。
07:09
啊,那其实咱这是不是直接count的就可以了啊,为什么看的就可以咱们分析一下啊,我们从这儿过滤出来的数据啊,它每一行是不是就相当于是一条登录记录啊,对吧?啊,那我们要想统计他登录了多少次啊,那是不是就计有多少行就可以了啊没错吧,那所以说在这儿直接看乃馨,我们得到的其实就是这个log in,诶count OK,在这儿呢,我们可以把它执行一下来直接回车。好,那来看啊,在这儿呢,我们就得到了每一天每个用户诶,他的登录次数了啊OK,那这就是我们的第一个字段啊好,那接下来我们继续啊,看第二个字段,来我们看第二个字段是啥,第二个字段呢,是car的count对吧,是不是叫做加入购物车次数,那我们还是先来分析一下啊,这个字段应该从哪张表取顺。
08:00
那大家最容易想到的应该是谁?应该是加购事时表对吧?啊,但是加购时表可以吗?这个我们来分析一下啊,首先我们回忆一下加购实时表它是哪种类型的时表啊,咱是不是给他做了一个周期型快照时时表啊,对吧?周期型快照时表的特点是什么?是不会保留所有的明细业务操作的,对吧?它只会保留固定时间间隔的数据。啊,那所以说在我们的加购物车试表当中,每行数据是什么?是一次加购物车的记录吗?不是而是什么,而是一个用户他购物车当中的一个SKU啊,那所以说我们从这个加购物车十秒当中啊,实际上是得不到每个用户他每一天的加购物车次数的。OK,那我们应该从哪张表里去取呢?那这时候呢,我们又要用到一张日志表了,大家说哪个日表了,是不是就是那个哎,动作志表了,来,我们去找一下,应该就是它d w action log OK表打首大家当中每数。
09:09
每行数据是不是用户浏览页面的时候所做的一个操作或者是一个动作呀?没错吧,OK,那这里边我们去看一下它里边的关键字段啊,来往后走,往后走,哎,咱们找在这儿,诶还在后边啊好在这儿啊,就是它,哎这个action ID,这个action ID指的是什么呢?指的是诶这一条动作它的种类啊,那我们看下都有什么种类啊,那首先第一个什么get cooperup这是什么?是不是领券的一个操作呀,对吧?那再往下走还有什么,比如这儿有cart remove,有cart I的这是啥?是不是加购物车,这个是不是减购物车呀?对吧,那除此之外还有什么呢?比如说还有什么fair at,这是啥呀,是不是收藏啊,没错吧,OK,那实际上这张表当中是不是就保留了咱们这个加减购物车的具体的操作呀。没错吧,那咱们能拿到加减购物车的这个具体的明细操作,那我们是不是就能统计每个人每一天加减购物车的这个次数了呀?
10:06
哎,是这样的啊,那所以说最终咱们就明确下来了,诶,我们应该从d log当中去取数,然后呢,去统计我们的每个人每一天的加购物车次数,好,那接下来我们一起去把这个circle写一下啊好,那在我们继续来,我们接下来select应该是from哪张表d action log对吧?那在这儿我们需要的也是全面的数据啊,所以说不需要过滤分区了啊,那就继续啊,那其余的过滤条件呢,首先第一个user ID is not no,这个也是得有的,对吧?好,那继续,那还有啥呀。那下边咱是不是得把所有的购物车的操作过滤出来呀,对吧,其余的我们不需要统计,没错吧,那所以说是不是得按照action ID对吧。没错吧,好,那现在我们就已经把所有的加购物车的操作都过滤出来了啊,那我们要统计的是啥?是每个人啊,他每一天加购物车的次数,所以说我们是不是也得按照UID加日期进行分组啊,对吧?所以说也是格入拜格拜宅user ID,那同样是DT就可以了。
11:10
好,那上面我们选择咱所需的字段,第一个是DT,第二一个是user ID,那接下来呢,是不是也是抗性啊,对吧,因为咱们得到的数据呢,每行数据是不是就是一次加购物车的记录啊,那所以说我们啊想求次数是不是就相当于是数行数啊啊OK,那直接看看清就OK了啊好,那这就是我们的第二一个字段啊,每个用户每一天加购物车的次数。OK,那我们再继续往下进行,看下一个字段,下一个是啥?下一个是不是非沃count,是收藏次数对吧?啊,OK,那它应该从哪张表里取数呢?同样大家肯定会想到收藏实时表,对吧?但是收藏实时表跟加购实表是一样的,也是一个周期型快照实时表,那所以它里边其实也没有最明细的操作记录,对吧?那所以说我们要想统计收藏次数,是不是还是得从dwd action log里边取数啊,对吧?刚才咱们也看到了啊,这里边是不是有一种动作叫做非玩爱的对吧?咱去找一下啊,在这。
12:06
没错吧,这是不是就是收藏啊,OK,那所以说实际上这个取值的思路和card count取值的思路是完全相同的,OK,那接下来咱们把这个词去写一下啊,那其实没必要从头写了啊,但是把这个改一下就行了呀,来拿过来咱只需要改哪是不是只需要把这个card的I改成FAI就行了,FAV,这是不是就OK了?没错吧,那这就是我们诶所获取到的第二一个和第三一个字的值,好,大家注意观察一下这两条circle啊,来一起看一下啊,你看他们俩是不是从同一张表当中读取了数据,没错吧,是不是对相同的字段做了分组操作,没错吧?然后呢,又获取了相同的聚合值,唯一的区别其实就是这个过滤条件。啊,那这两条词汇语句这么相似对吧?但是呢,它是分开执行的,没错吧,那你说这个数据是不是会读取两遍,没错吧,然后呢,聚合呢需要做两次,那在这儿呢,是不是就相当于有重复的计算呀,对吧?啊那我们能不能想点办法给它优化一下啊,然后避免这个重复计算呢?
13:09
其实是可以的啊,那大家来看一下这个circle咱们可以怎么去写啊,来我们来看一下啊,那首先我select一下,然后from哪张表还是d WD action log啊,然后咱继续,那同样呢,是user ID is not no啊,然后注意观察,那下边呢,我们同时把这两种类型的操作日志都给它滤出来,那应该就是啥呀,是不是应该是呃,Action ID,呃,等于它或等于它对吧?或者说我们这儿呢,用一个in就行啊,In,什么in ad以及这个faird对吧?D啊好,那我们是不是把这两种类型的操作日志给它过滤出来了呀,对吧?然后大家注意我接我接下来呢,我仍然是直接格入Y,格入Y是谁呢?格入y user ID,然后加上这个DT。然后大家这时候一定要注意一下啊,我现在分组,我相当于把什么样的数据分到一组里去了呀。
14:00
我是不是会把同一个用户同一天的,哎,Card的,也就是加购车的操作日志以及fair,也就是收藏日志是不是分到一组里边去啊,对吧?啊,OK,那具体是什么样的呢?假如这就是一组的数据,那这里边呢,会有cart a的日志,会有fe a的日志,哎,会有cart,会有favorver,没问题吧?啊,OK,那咱们拿到这一组数据之后,我接下来需要做怎样的聚合呢?那首先我们需要先明确啊,咱现在要统计的是啥呀?咱要统计的是不是每个人啊,每一天加购物车的次数,以及收藏的次数啊,对吧?那实际上呢,就是card I的这个日志的行数,以及fair I的日志的行数,没错吧,那接下来咱们怎么做能拿到这个所谓的次数或者是行数呢?其实很简单,大家注意观察啊,我首先我先使用一个if函数啊,If函数去做一个什么呢?做一个这个逻辑判断,那具体怎么判断,大来看一下啊,如果我的XID等于I,那我这时候呢,我就让if返回一个一。
15:03
否则我就让它返回一个零。啊,那这样一来的话,它是一,它是零对吧?那这个呢,是不是也是一,这个是不是也是零啊对吧?之后呢,我再对if函数的返回结果做一个sum求和的操作,那你想啊,我对它萨姆求和之后,这个结果是几?结果是不是二,那没错吧,那我们是不是就有两条日志,那咱得到的是不是就是car I的这个日志行数,也就是加购物车的次数了。没错吧?啊,那同样道理,这时候呢,我再反过来啊,我再用一做一个判断,如果XID等于非2I的,我就记一,否则我就记零,那这个零一是不是就反过来了,对吧?啊,那同时我再对这个if诶,它的返回值做一个sum求和,那咱们得到的是不是就是非玩I的次数了呀?没错吧,那你注意观察一下啊,那这里边我们相当于是不是只读了这张表一次啊,对吧,完了之后呢,只聚合了一次,就把这两个值是不是就都求出来了呀?那这样一来我们就能够有效的去减少这个重复计算,那这个circle具体怎么写啊,按照我们刚才所说的是不是就是sum if啊,对吧?那sum,然后里边的嵌套一个if,那if里边呢,我们首先需要传一个布尔类型的值应该是啥?应该是XID,如果说它等于诶cart ID,那OK,这时候呢,我就记一,否则我就记零啊,那这个咱得的实验就是啥,是不是就是那个所谓的car count呀。
16:23
没错吧,那同样道理,我们就往下进型啊,那我再把这个IID给它改一下,改成啥?改成诶非玩I,那我们得到的值那就是啥了,那是不是就是非count了呀?没错吧,那上边了我们需要给它来一个逗号啊好了,那现在我们就相当于同时把我们所需的这两个值诶给它求出来了啊,那当然了,上边我们还需要再把DT和UID给它选择出来好了,那所以说上边咱写的这俩样就不再需要了,对吧?啊,咱给它删掉就行了啊好了,那到现在为止,我们的第二一个以及第三一个字段咱们就学好了啊,那实际上呢,大家应该有这样的一个思想啊,什么思想啊,我们后续还有很多字段需要去统计对吧?啊,那如果说有某几个字段可以从同一张本里出,那我们就尽可能的是不是一次性的把这几个字段同时出出来啊,对吧?那这样一来能够减少重复的计算啊,OK,好,那接下来我们再继续往下进行,好,我们看下边几个字段啊,来大家注意观察一下啊,实际上下这几个字段呢,都。
17:24
都是与older订单相关的统计值对吧?啊好,我们再来看一下具体都是啥啊,那第一个就是下单次数,当然这个下单次数呢,指的是每个用户每一天的下单次数对吧?啊那接下来下一个下一个呢是订单参与活动的次数啊,那下边呢是诶参与活动减免的金额,没错吧?那再往下呢,是订单用券的次数,那当然下一个呢,就是诶使用优惠券减免的金额啊那再往后呢,是订单原始金额,最后一个是订单总金额啊那实际上我可以告诉大家啊,这几个字段呢,我们都可以从DWD层的older in这张表里出啊,那所以现在呢,我们直接把这个serve一起写一下啊来往檄翻啊来,我们求一下这几个值啊,那首先我们select,然后呢from dwd层的应该是older in for对吧?啊,OK,那那现在我们是不是就能够拿到全部的订单了?
18:18
没错吧,那因为我们要统计的是每个人每一天的,诶下单次数啊,下单金额呀等等等,但咱得怎么做呀,是不是又得分组统计啊,对吧?那所以接下来需要葛如by user ID,那是不是还得GU by一个日期啊,对吧?那这个日期应该是什么日期,是不是应该是下单日期,没错吧?诶那这时候我再问一下大家啊,这时候我们再按照DT分组行不行?可不可以?啊,这个DT这次它就不行了,为什么不行呢?给大家解释一下啊,在这儿呢,我们原本要求按什么分组,是不是按照下单日期分组啊,对吧?啊但是呢,我们先来看一下这张时值表,它是一个什么时值表,是一个累积型快照时表,对吧?那它的分区规划是什么样的呀?啊首先会有一个999分区,然后呢,还会有一个每日的分区,对吧?9999分区里存放的是未完成的订单,其余分区每天的分区当中存放的是当天完成的订单。
19:12
没错吧,那所以说这个DT的值与我们期望的那个下单日期它是一致的吗?哎,不是一致的,那所以在这儿呢,我们就不能用DT了啊,得用得用cur time才可以啊C,当然cur time呢,它里边有年月日有十分秒对吧,我们不需要,我们需要给它诶格式化一下啊be,然后呢,Format,然后把cur time给它放进来,后边呢,我们需要给它写一个YYY啊然后呢杠。诶,这个是杠大M大M,然后杠DDOK,那这个咱就格式化好了,好,那分组完之后呢,我们需要去选择咱所需的这两个字段,那第一个呢,就是这个日期,诶咱给他选过来,那学下来之后呢,等样咱就得起个别名嘛,叫做DT,那第二一个字段就是user ID啊进下来咱们继续往下进行啊,那下一个字段让我们统计的是啥呀?来,我们把这几个字段拿过来,咱们照着写一下啊来从这到这儿,来CTRLC来咱给它盯在这啊好,我们现在求第一个字段order count啊order count是啥?是不是就是下单次数啊,那我们拿到的这个数据啊,每行数据是不是就是一个订单。
20:15
没错吧,那我们下单的次数是不是就相当于求那个行数啊,对吧?所以在这直接怎么做,是不是直接count清就行,来咱们cot啊,来count就可以,好,那现在我们就得到了第一个统计值了啊,那接着下一个,下一个是什么?下一个是订单参与活动的次数,那这个我们应该怎么求。啊,大家想想啊,我们现在是不是把数据分组统计了呀,对吧?那什么样的数据被分到一组了呢?是不是同一个人同一天下的单被分到一组里边去了呀,对吧?那这些订单里边可能有些订单他参与活动了,有些没参与,没错吧?那我们要求的是啥?是不是统计一下有多少个订单参与了呀,对吧?那这个应该怎么办呢?是不是也可以使用sum if啊,对吧?那如果说诶这个订单他参与活动了,那我就记一,否则诶我就记零,那我们在这次求和得到的是不是就是参与活动的订单数啊,对吧?
21:09
没错吧,那关键是诶,咱们怎么去判断一个订单有没有参与活动。啊,其实很简单啊,大家还记得吗?在这张表当中,哎,咱是不是有一个这样的字段,什么字段叫做activity reduce amount,这是啥呀?是不是活动减免金额,如果这个金额大于零,那就表明该订单参与了活动了,对吧?否则就说明没参与,没错吧?那所以咱可以根据它去判断啊来,我们再回到这儿,所以这呢这呢咱可以怎么写,是不是可以写呀?呃,Activity reduce amount大于零,那我就记一,否则就记零。那这样一来咱是不是就得到了我们想要的订单参与活动次数啊,好,那接下来咱继续啊,下一个是啥呀?下一让我们统计的是订单减免金额,当然指的是参与活动的减免金额啊,那所以这其实直接萨姆求和就可以,对吧?来sum求和,那咱们把这个activity reduce amount放里边,然后咱们接下来继续下一个呢?下一个是订单用券次数,那它和订单参与活动次数的逻辑是不是相同的,都在这,咱们也是使用some if就可以了,来some来个if里边呢,我们写上谁呀?应该是呃,Coupon reduce amount对吧?完了之后,呃,如果大于零,诶,那我就记一,否则我就记零啊,没问题,先来下一个啊,下一个呢是啥?呃,是订单减免金额,然后使用优惠券减免的,对吧,那这边呢,我们直接把这个库邦reduce amount是不是给他求和就可以好接来下一个,那下一个是啥呀,下一个让我们求的是订单原始金额,那我们就把每个订单的原始金额加一起是就完事了呀,对吧?那所以就some应该是啥,Original amount。
22:38
好,这个搞定下一个,那最后一个是什么呀?是订单总金额,是不是也是直接求和呀,对吧,应该是final amount啊OK,那到现在为止,我们就把订单相关的这几个字段,诶统计完了啊,其实很简单啊,咱们可以执行一下看一下走。好,那这就是我们得到的结果啊,好了,那接下来我们继续往下进行,来,我们看下边几个字段啊,往上翻好,那下边这两个字段呢,是与支付相关的统计值对吧?一个是支付次数,一个是支付金额,好那现在我们把这个词一起写一下啊,那首先我们还是先来明确啊,这两个字段应该取自于哪张表。
23:16
那是不是应该是支付事实表啊,对吧?OK,那接下来咱把这个词一起写一下啊,那首先我们先从诶支付实表里边获取咱们所需的支付记录,应该是DWD层的payment in份对吧?OK,那大家要注意啊,那从这个这张表里,咱们拿到的所有的支付记录里边啊,是不是有一部分是完成的,有一部分是未完成的呀,对吧?在这儿呢,我们其实只需要统计完成的就可以了啊,所以在这儿呢,我们需要做一个过滤啊,V一下。那你说过滤条件应该怎么写呢?啊,应该怎么写啊,啊,其实很简单,大家都知道啊,完成的记录是不是放在完成那一天的分区里,未完成的记录不是放在9999,那所以说我们不要999是不是就可以了,也就是DT它不等于9999就可以了,对吧?来我们写一下9999,然后杠九九杠九九啊啊,那现在我们就拿到了所有的完成的支付记录了,对吧?OK,那咱继续啊,我们要统计的是啥?是每个人每一天他的支付次数和支付金额,所以说是不是又得分组统计啊,对吧,那咱就group by谁一个user ID再加一个啥,是不是再加一个支付的完成时间呀,对吧。
24:22
那完成时间应该是谁,是不是应该是那个call back time对吧,那在这呢,我们诶直接按照back time进行分组就可以了,诶但是大家跟我思考一下啊,那这张表当中,那咱们的分区规划是什么样的。那是不是也是会有一个每日的分区,那再加上一个,再加一个九九有分区对吧,但是九九有分区呢,已经被我们过滤掉了,对吧,那现在是不是只有完成的分区。是这个道理吧,啊,那你想一下啊,我们是不是哪天完成的支付记录就放到哪天的分区里了。没错吧,那所以说这张表的DT与它支付完成的时间实际上是一致的,就在这儿呢,我们可以按照call back time进行分组,也可以直接按照T进行分组啊,它俩是一样的,OK,那咱就按DT啊,那上面选择DT,选择uz ID啊,那接下来我们统计第一个值啊,就是payment count啊,其实直接count其是不是就可以对吧?因为一行就是一次支付记录啊,那次数就等于行数嘛,啊好,再下来继续,那下边让我们觉得是啥是金额对吧?金额是不是萨姆求和对吧?我们把这个payment amount加一起就可以了,那OK,那这就是我们获取到的与支付相关的两个字段啊好,那现在我们继续往下进行,好,我们看下边的字段啊,来往上翻,嗯,下边几个字段呢,都是与退单相关的统计值,没错吧,是不是refund order啊对吧?一个count,一个number,一个amount,分别就是次数、件数和金额啊,实际上这几个字段呢,那肯定是从哪哪两表取出啊,不应该是退单试试表啊,对吧?那这个词和期相对来说就比较简单了,那接下来我们快速的写一下啊,来往下走。
25:52
在这边呢,我们也是select啊,然后呢,From应该是DWD层的,呃,Order refund info对吧?啊好,那现在我们就拿到了所有的退单记录了,对吧?那接下来我们继续往下进行啊,那我们要统计的是什么?是每个人每一天退单的次数,件数、金额,所以说是不是又得分组对吧?直接group拜就行,Group如拜谁啊,是不是user ID再加上一个退单时间呀,对吧?那这个退单时间能不能用这张表的分区字段?
26:21
来咱们分析一下啊,那首先我们先来回忆一下这张表,那它的呃,分区规划是什么样的啊,那首先这张表我们做的是一个事故形式表对吧?那没错吧,那OK,事故形式表分区规划啥样的呀,是按天分区,每天的分区当中存储当天新增的退单记录,对吧。没错吧,那退单时间与这个呃分区段DT的值是不是就是一致的呀?没错吧,因为哪天产生的退单记录就放到哪天的分区里了吧?啊那所以说在这呢,我们可以用DT去代替这个退单时间啊OK,那完了之后呢,我们继续往下进行,那这边是不是来一个DT就行了对吧?那完之后呢,我们再选择UID,那接下来我们要求的分别是啥呀?分别是退单的呃,次数件数金额对吧?咱们去看一下这个顺序啊次数件数金额没错对吧?那接下来我们把这几个值求一下就可以了,那次数呢,实际上就直接看的星就可以了,那继续往下进行,下一个件数呢,件数是不是萨姆求和里边呢,应该是有一个ref方的number啊,那会之后呢,下一个哎,金额也是sum求和refund amount就完事了。好,那退单相关的三个字段我们就求完了。
我来说两句