00:00
好,我们继续看下一个需求啊,商品统计啊,这个需求呢,相对来说比较简单啊,这里边主要让我们统计的就是每个PU被下单的总次数和被下单的总金额啊,OK,那这两个概念呢,其实不需要解释,对吧,大家肯定都知道啥意思啊好,那接下来我们看一下建表语句当中的具体字段啊,来先看第一个DT啊,这个DT呢,其实就是一个统计日期,这个不需要解释啊,然后看下一个,下一个呢是recent this,就是最近N天啊,那同样呢,如果是一表示就是最近一天,七就是最近七天,30就是最近30天啊,那当然这个字段的含义呢,就是告诉我们,让我们去分别统计最近一天,最近七天以及最近30天内每个PU被下单的总次数和总金额。没错吧,啊好,那接下来我们继续往下进行,那再往下呢,实际上就是商品的一些属性啊,我们来看一下啊,那分别是po ID啊,Po name啊,品牌ID,品牌名称啊,然后三级分类的ID以及名称,没错吧?诶,这其实都是商品属性,那OK,我们再来看最后两个字段啊,最后两个字呢,实际上才是我们真正需要统计的字段啊,那一个呢是被下单的总次数,一个呢是被下单的总金额啊那这就是商品统计这个需求的说明,好,那紧接着我们就来把这个需求实现一下啊,那我们还是先来分析一下具体的思路啊,就刚才咱们也提到了啊,这个需求真正让我们去统计的就是每个商品在最近一期30天内的下单次数和下单金额。
01:34
没错吧,像这些字段呢,是不是都是一些商品的维度信息啊啊,他们比较简单啊,好,那提到每个商品在最近一期30天内的被下单次数和被下单金额,大家是不是应该感觉有点熟悉啊?没错吧,我们是不是在DWT层的商品主题表当中就做过类似的统计啊?没错吧,但是诶,大家一定要明确啊,DWT层的商品主题表当中,我们统计的是每个SKU在最近一期30天内的被下单次数和被下单金额啊,而此处呢,让我们统计的是每个PU的被下单次数和被下单金额。
02:12
啊,这个大家一定要搞清楚啊,那所以说咱这儿的具体思路应该什么样的,应该是这样的啊,我们先从DWT层拿到诶,每个SK在最近一期30天内的被签的次数和被签的金额,之后呢?诶之后我们再拿到每个SKU的s puu信息啊,然后再干啥?然后我们再按照PU进行分组聚合,那这样一来咱是不是就能够得到每个PU被下单的次数和被下单的金额了呀?OK,那这就是这个需求的全部思路啊好,那接下来呢,我们就把这个思路实现一下。那我们就先获取每个SKU在最近一期30天内的被下单次数和被下单金额,没错吧?好,现在我们开始写30个来select from应该是哪没?应该是DWT层的s ku topic对吧?那我们需要的是它最近一天的分区2020杠零六杠幺四,那咱们怎样才能分别拿到诶,每个SKU在最近一期30天内的被下单次数和被下单金额呢?那同样呢,是不是使用pro的这个函数把这个数据呢?给它扩张为三份对吧?然后这三份呢,分别去选择最近一天,最近七天和最近30天的累计值来我们实现一下啊,在这儿呢,首先需要来一个let review,然后呢,来一个explode,对吧?里边呢,是一个数组,那再往里呢,放上一七三十对吧,来一个t as recent this。
03:37
啊,这个没有问题对吧?那接下来呢,我们就可以根据recent this的值去分别获取每个SKU它的最近一期三十日的累计值了,没错吧?那现在我们给它写一下,那首先我们先把sqidd选择出来啊,然后呢,把recent days也给它选择出来啊,那再继续,那下边咱是不是就得使用case when,然后根据recent days去选择不同的值了呀,没错吧?那现在我们来一个case,下面呢,先来一个end,那里边呢,我们开始写问问什么问recent days等于一,诶,那我就先获取它最近一日的下单次数啊,那应该就是order last ED count对吧?啊,OK,那同样我们把下边诶七和30也这样给他选出来啊,那这个先改成七。
04:20
来,这两个都改成七,那继续啊,那下边两个呢,都得改成30对吧,来。拿过来30啊好,那完事之后呢,给它起一个别名,那这个就叫做o count吧,O Co,好,那现在我们就已经分别拿到了每个SKU啊,在最近一期30天内的下单次数了啊好,我们继续往下进行,那下边给它复制一下,改一下就可以啊来,CTRLC拿过来CTRL,喂,那在这儿呢,我们需要把后边的count改成amount对吧?那现在我们一起改一下啊来啊,那咱这个金额呢,一共有两个对吧,一个是原价,一个是最终啊那咱们应该用谁?是不是应该用那个最终金额应该是final amount,没错吧,那下边这个别名咱也得改一下啊,改成a a moment啊,改成amount啊好了,那现在我们就已经拿到了诶,这个每个SKU在最近一期30天内的被下单次数和被下单金额了啊好,那接下来我们继续往下进行啊,那接下来咱是不是就可以去获取商品的这些属性了呀,对吧?啊,那这些属性应该从哪张本里去取?
05:21
那很简单,是不是肯定是商品维度表啊啊,OK,那接下来咱们去获取一下啊,来咱select,然后呢,From diam,呃,SKU infer,没错吧?然后大家要注意了啊,那这张表呢,它是一个全量维度表对吧?啊,比如它是一个分区表,每天的分区呢,存放的是当天的全量的SKU信息,没错吧?那我们是不是应该获取它最新的一个分区就够了呀啊,这个一定要注意,不要获取全表啊,所以我们需要加一个过滤条件,V2DT等于呃,2020杠零六杠幺四没错吧?那接下来呢,我们需要获取咱这儿所需的所有的属性,没错吧,在这儿呢,我已经处理好了,咱们直接拿一下就可以了,来,CTRLCTRLC,诶,我们给他拿过来。
06:01
啊,CTRLV啊OK,那现在呢,我们就已经拿到了咱们所需的所有的商品属性了啊,那接下来我们要做的事应该就是,那是不是就把他俩join一下,然后呢,按照这些商品的属性进行分组,然后呢再对下单次数和下单金额进行聚合,是不是就完事了啊OK,那接下来我们做一下这一步操作啊来,首先先给这两个子查询呢,分别起一个别名来,CTRLX。来CTRLV往前推一下啊,那这个呢,我们就起名为T1吧,啊,那下一个呢,我们就起名为T2 CTRLX来括号。CTRLV来往前推一下啊。这个呢,就是T2。好,那它俩呢,需要做一个left join啊lft join啊,那连接条件呢,很简单啊,应该是t1.skidd对吧?嗯,等于什么?等于T2.id,好好,那已经照样上了,那接下来从中选择我们所需的结果来select。然后呢,来一个from,然后我们就可以进行分组聚合了啊,那我们的分组字段呢,应该包含这些所有的字段,没错吧?啊,那现在这些字段我已经准备好了,那咱们去拿一下啊,CTRLC拿过来,嗯,好,我们放在下边啊,来在这儿应该来一个是不是格BY啊,对吧?把一些所有的维度字段都拿过来啊,那上边呢,我们是不是把这些维度字段也得都选择出来啊啊,那我这儿也准备好了,我们也去拿一下来CRC拿过来,来,我们放在这个位置CRV啊OK,那现在我们已经完成了分组啊,也把分组字段选择出来了,那接下来我们要做的是不是就是对这两个统计值进行聚合呀,没错吧,那聚合很简单,是不是直接sum求和就可以来?Some应该是一个是older count,那另一个呢,是older amount。
07:43
来,拿过来。order.or DR和amount,那好,那现在我们就已经拿到了,诶,我们所需的最终结果啊,啊,那最后我们再来给他补上一个insert语句啊,Insert or right table应该是ADS层的so po states,没错吧,那下边呢,我们再来一个select星from adso s po states,再来一个union啊,好,那商品统计这个需求也就结束了。
我来说两句