00:00
呃,好了各位,那咱们这个时间剩的也不太多了啊,然后咱们稍微再抓紧一点时间,我们今天呢,把这个ADS,呃,一定要给它结束啊好,那现在我们看一下倒数第三一个需求叫做各省份交易统计,好那这个咱们刚才没有做啊,所以说现在我们再来明确一下这个需求是什么,这个需求其实很简单,你刚才让我们算的是啥?是不是让我们算的就是最近一七三十日各省份的订单数和订单总额呀,对吧?其实这个需求很简单,对不对?好,那接下来我们看一下它这个建表语句是什么样的,看看它最终的表结构啊,来吧,CTRLC咱给他拿过来,哎,之后呢,我放在这个位置,来各位同学我们一起来看一下它这个建表语句,呃,首先先来明确一下它的表名是不是叫做as older by province啊对吧,是不是就是各省份订单统计对不对,很简单,那接下来我们继续往下看。来看一下,就是咱们这儿的这这个就最终的这个这个字段都有啥啊,呃,首先我们先看哪呢?先看下面这这一块是不是相对来说是比较简单的对不对,这是比较简单的啊,这是不是对应的,就是我们刚刚提到那个下单的次数和下单的金额呀,对吧?好,那我们再往上看这一大堆东西,这都是什么信息,都是省份的维度信息,对吧?OK,里边有一个省份的ID,那还有一些省份的维度属性,我们是不是把这些编码省份名称也都放在一张表里面对吧?这个是为了干啥用的呀,是不是为了将来我们去做展示用的呀,对吧?因为这是ADS层的需求嘛,将来要做展示了,OK,那这个我就不再解释了,然后往上看这俩字段是不是还是用来表示那个统计周期的呀,对吧?诶这个咱们就不再多说了,好,那我现在问一下大家,你说将来这个需求咱们做完,每天会往里边写入多少条数据。
01:42
这个每天写了多少条?这个是不是写多少条,取决于咱们那那个省份的个数,对吧?哎,咱们多少个省啊。不敢说是吗?是不是怕说错了,34个省,34个省对吧?OK啊好,那完了之后我是不是呃会算一个最近一天的这每个省的这些统计值,还有这个最近七天的每个省,还有最近30天的每个省,是不是就是34乘三呀,应该是对吧?应该是这样的一个逻辑啊好,这个大家把结构搞清楚就行了,好那接下来我们继续往下走,下边咱是不是就可以开始分析这个需求怎么去实现了呀,对吧?来分析分析大家说这个需求怎么做,这个需求怎么做。
02:20
这个怎么做,首先我们还是先考虑一个啥呢?先考虑一个最近一天啊,先不去考虑最近N天,那你说我要算最近一天的各省份的什么订单数,订单集额,这个怎么算呀,是不是还是得先明确一下咱们从哪去取数对不对,那这是不是都是跟下单相关的,对,所以说我们应该找下单相关的汇总表啊,对吧?下单相关的汇总表咱找谁就行了,我直接找省份是不就行,诶这个表它就是什么力度,就是省份力度对不对,那我这要求的这个结果它也是什么力度。它是不是也是省份力度,因为你要求的是最近一天各省份的是不是订单次数,订单金额,对吧?诶,那汇总表的力度跟我这个需求的力度是不是一样的呀?那我还需要再去做什么聚合预算,不需要了,我直接拿什么就行了,我就直接拿结果呗,对不对?你看啊,咱们拿过来,你这里边存的不恰好就是最近一天内各省份的这个什么下单的次数,下单的金额嘛,是不是都有啊,对吧?所以在这儿呢,我们直接从这里边拿咱们所需的结果,那就完事了,是不需要再做进一步的聚合运算的,这一点大家需要给它搞清楚好了,那完成之后我们继续往下走,一天呢,咱就搞定了,那完之后N天的怎么算?
03:34
但说N天的怎么算呀。N天的怎么算N天呢?是不是咱们也可以先分开求再合并啊,对吧?来咱们先分开求,比如说我先算一个最近七天的,大家想想,你说最近七天的,咱这个怎么求?是不是得找到N地的这张表对不对,最近七天的各省份你直接怎么办?就也是不是也是直接拿对不对?OK,我先拿一下最各省份的是不是最近七天内的下单的次数,下单的金额,把这个字段拿出来是不是就完事了,这是七天的就搞定了对吧?这个是不是也不需要再走额外的聚合运算了,对吧,应该是能搞清楚的啊好,那接下来我们继续往下走,那完了之后这个这个这个这个30的怎么办呢?30的是不是还是在N地里边拿一下就行了,对吧?拿一下各省份,然后后边呢,是不是最近30的下单次数,下单金额,那就完事了对不对?那这样一来,我们最近一最近七和最近30的结果其实都能够直接拿,就不用再做额外的聚合运算了,这一点大家要稍微的体会一下,OK啊,好了,那么这个30课呢,我们就不再一点点写了啊,我们直接看一下文档当中的最终的这个答案,来咱们给他拿一下啊。
04:39
CTRLC我们拿过来,拿来之后我们放在这个位置看一看它这是怎么做的啊呃,那首先呢,我们先看这儿,这儿是不是中间用到了一个union啊,对吧?但这个其实没必,我们来一个UN是不是就行?好我们先看一下union前面的内容,看这这块的内容大家应该是能够看明白的吧,是不是直接从E地表里取一个分区,然后呢,拿每个省份的是不是最近一天的下达次数下来一个,那就搞定了对吧?好,那完之后看他N天怎么做的,注意观察一下他这个N天,其实说实话文档这个小测和他写的稍微的有点毛病,但是它结果没错,但是结果没错,为什么啊,咱们来看一下它怎么写的啊,注意观察,那首先他这是不是写了一个,就是咱们这看这啊s light from这是不是有一个子查询对吧,这个子查询你看他拿的是什么。
05:24
他怎么写的,你看一下是不是首先从我们这个呃,哪张表里取出,是不是从ND表里取出,对吧,取它最近一个分区对吧?然后呢,是不是先把这个数据炸成了七和30这样的两份啊对吧?然后呢,他从七这一份拿出来的是什么?是不是OLDER7D total7D 30这一份拿出来的是不是older抗的七,呃30D,还有older total amount30D啊对吧?好,那你想一想,这个是不是已经是最后结果了就。这已经就是每个省份对不对,完事儿之后最近七天的下单统计和每个省份最近30天的下统,是不是已经是最近最终结果了,对吧,还有必要再去做聚合嘛,其实没必要,对吧?那完了之后你看它聚合的时候按照什么聚合,是不是就按照瑞森代加省份牛聚合呀,对吧,那我这个表就是我这个子查询我的力度本身就是啥力度本身是不是就是省份加瑞的力度啊,对吧,相当于你又把哎这个同一个统计周期的同一个省份的一行数据是不是又聚合到了一行里边去了呀,对吧,相当于一行到一行,你聚合相当于没聚合对吧?是这样的,所以说虽然他写的有毛病,但是结果倒是不错啊,当然这个咱们稍微的给它优化一下,你怎么优化一下就行了,我是不是直接把内层的子查询拿出来,然后这一套东西我都给它删了,我就不要了,对吧,我直接放在这儿是不是就已经能得到咱们这个最终结果了,对吧?这个是大家需要特别注意的一点啊,然后在这儿呢,我们给它补上一个这个字段,诶那咱们这个circle,诶这就完成了,诶好了,那这。
06:55
就是我们这儿的这个各省份的一个统计的需求,这个相对来说要特殊一点,因为我们本身就已经有最终结果了,哎,相当于我们这就做了一个什么操作呀,相当于咱们就是把是不是这两张表的数据的结构给它变换了一下啊是是这个道理吧,OK,在ND这个表里,原来我那个是不是七天的和30天的统计值是位于一行的呀,对吧,那我现在是不是给它拆开,我放在不同的行里边去了,对不对,其实就是改变了一下结构啊,就得到最终结果了,行了,完成之后视频我停一下。
我来说两句