00:00
好,我们继续看下一个需求啊,订单统计,那这个需求呢,其实比较简单啊,我们来看一下它的要求是什么啊,这个需求呢,要求我们统计订单总数,订单总金额以及下单总人数啊,当然呢,这个肯定是一段时间之内的下列指标,对吧?啊,那这个一段时间呢,同样还是最近一天,最近七天以及最近30天啊好,那接下来呢,我们把这个建表语句一起看一下啊,把字段仔细看一下,第一个字段呢,是地T统计日期,这个不用多说啊,好,下一个。Recent days对吧?那这肯定是最近N天,刚才我们也提到了对吧?这个最近N天呢,指的就是让我们去统计最近一天内,最近七天内以及最近30天内的这些指标,没错吧?好,继续往下看啊,下边呢,三个字段就正好对应于我们刚刚提到的三个指标,分别是order count,订单总数,Order amount,订单总金额,Order user count,下单总人数啊好,那这就是订单统计这个需求的说明啊好,那接下来我就把这个需求实现一下啊,还是先来分析一下它的思路啊,这个需求让我们去统计最近一天,最近七天以及最近30天内的啊,订单总数,订单总金额以及下单总人数,对吧?
01:15
啊,在这儿我们可以怎么说呀,我们可以先从DWT层的用户主题表当中,把每个用户的最近一天,最近七天以及最近30天内的下单数,还有下单金额给它读取出来,那之后呢,那我们再把每个用户的订单数和订单金额给它聚合起来,那这样一来我们是不是就能得到总的订单数和总的订单金额了,那至于下单总人数呢,这个其实比较简单啊,我们可以根据这个人在最近N天的下单数以及下单金额去判断它是否下单了,对吧?然后呢,再根据判断结果去统计相应的人数,啊好,这就是这个需求的大体思路啊,那接下来呢,我们把它实现一下。那我们先获取每个用户在最近一期30天内的下单次数和下单金额啊,来我们select,然后呢,From应该是DWT层的user topic,没错吧,那分区呢,我们选择2020杠零六杠幺四这个分区啊,那同样在这儿我们需要使用explore的函数去把原来的数据呢扩张为三份,对吧?那所以在这呢,我们需要来一个let review you ex prod explode里边放一个array,然后元素分别是一七以及30,哎,没错吧,TPS recent this。
02:30
啊,OK,那现在数据呢,它已经扩张为三份了对吧?那接下来呢,我们就可以根据recent this的值来去分别获取最近一期和30天内的下单次数以及下单金额,没错吧?那现在呢,我们选择一下来,首先先把诶recent days选择出来啊,然后呢,再把user ID也选择出来,那接下来呢,我们就可以使用case问了啊,对吧?来case啊,来一个N的啊问问什么问re desk等于一啊,那我就返回,我们先获取它的下单次数啊,那也是最近一天内的下单次数对吧?那也就是order last ED countt对吧?完了之后呢,我们CTRLDCTRLD给它改一下就行,那把它呢改成七,那这个呢也改成七,那下边两个呢,都给它改成30,来一起改一下啊。
03:16
好,这个是30,好,那现在我们就得到每个用户在最近一期30天内的下单次数了,对吧,咱起个别名叫做order count啊完之后呢,我们再获取下单金额,跟他一样,CTRLC复制一下就行啊。CTRL完后边呢,我们把can改成A。来,走。呃,Amount有两个,一个是final amount,一个是original amount,对吧?咱们在这儿还是使用final amount啊好,那下边的别名也要改一下,改成order amount就可以了。好了,那现在我们就已经得到了每个用户在最近一期30天内的下单次数和验单金额了,对吧?那接下来呢?接下来咱是不是就可以按照recent this进行分组统计了?没错吧?那接下来我们给它来个子查询,CTRLS放括号里。
04:03
CTRLV往前推一下,呃,这个呢,我们起名为T1啊。好,那我们来from PE。没错吧?那接下来我们就可以group by recent death了啊,上边咱们把recent this给它选出来,Recent death之后呢,之后我们就可以去获取总的下单次数和下单金额了,对吧?那我们直接sum求和啊,Sum谁应该是order count,那这个就是总的下单次数,那sum order amount这个就是总的下单金额啊,那完之后是不是还有一个下单人数啊,对吧?下单人数怎么求啊?是不是用sum if就可以?没错吧?来sum if if里边写啥?诶,如果order countt诶大于零,那就表明他下过单对吧?那我们就记一,否则就记零啊,那这样一来呢,我们就得到下单人数了啊好了,那到目前为止我们就已经统计出来了,在最近一期30天内的总的下单次数,总的下单金额和总的下单人数了啊,最后我们还剩一个第七字段给它补上就可以了啊,来写一个常量值2020杠零六杠幺四啊,那我们最后再来一个ins色的语句就可以了,来in色等下啊,Ins色的overright table应该是呃,ADS层的。
05:13
把order来total对吧?啊完之后呢,来一个light星from,呃,ADS o total啊完之后再来一个UN。啊,OK,那到目前为止,订单统计这个需求我们就全部完成了。
我来说两句