00:00
啊,来吧,各位同学,那咱接下来呢,看一下我们的第二一张维度表,我们称之为优惠券维度表,那那首先需要明确的一点就是啊,那咱们是不是也得先去设计它的表结构啊,对吧?那你要设计它的表结构也得先找什么,先找业务系统当中是不是与之相关的主维表和相关为表啊,对不对,那与它相关的表都有谁呢?剩在这呢,我就不带大家一个去找了,我就直接告诉他就行了,Ods层与它相关的表其实就一张,主要就是一张,就是谁呢?就是那个ods层的coupon in for找一下。那就在这儿了啊OS库房E,但是它也是一个每日全量表对吧?OK,那大家对这张表它的表结构熟悉不熟悉。也不熟悉对吧?要不熟悉的话呢,咱们得先来简单的熟悉熟悉啊,OK,那这张表首先我们需要先明确一下,它每行指代的是什么,每行指代的是什么,每行其实指代的就是一个优惠券的信息吧,对不对,因为很简单啊,接下来我们再来看一看它的字段都有啥,简单看一眼就行,那首先ID就是它的ID,不多说,这是优惠券的名称吧,这个是什么?是优惠券的类型对不对?这个类型你就观察它存的是什么东西,存的是编码吧,3201对不对?3201是什么意思呢?这个咱们得从哪面去看,得从字典表去看,对吧?OK,那这儿是不是有一个字典表对吧?字典表大家会不会看啊?大家会看吗?像这个字典表里面呢,核心字段就是他们仨分别是diic code的dic name和parent code啊是这样的,OK,那在这呢,我们这个字典表到底怎么去看,怎么去用啊,我先给大家说一下,就是这个字典表里,它保存的字典信息实际上呢,是非常丰富的,对不对,OK,那这里边与与有有与什么相关的,这个这个这个字典呢,由。
01:41
与订单状态相关的字典,还有与支付方式相关的字典,有与评价诶相关的字典等等等等,也就是说我们几乎所有的字典是不是都放在这一张统一的字典表当中啊,对不对?那这个东西怎么看啊?先看一下这俩字段,这俩字段就是核心的字段,字典的扣的和字典的名称对吧?这边是编码,这边是解释相当于是对吧?OK,那后边这个所谓的parent code是干啥用的?所谓的副编号它是啥意思呢?其实说白了啊,这个东西你就可以把它理解为是一个什么,理解为一个分类。
02:14
对不对,OK,你看啊,是不是parent code相同的,那它们是不是就属于同一个类啊,对吧,没问题吧,OK,那这是十类,这是11啊,其实就是一个分类信息,这一点要搞清楚,当然这个盘扣的跟这个扣的也是有点关系的啊,就这个扣的什么呀,前两位吧,没问题吧,11,这是不是11啊对吧,12,这12,哎,这个大家看懂,能看懂就行啊OK,好,那接下来我们来看一看啊,就是刚刚我们看到的那个所谓的优惠券那张表对不对?那它里边的这个编码应该是什么,刚才是什么开头呢?三二开头的,对吧?那完了之后在这儿呢,我们是能写过过二过滤条件的啊,你可以直接写一个它的扣的等于多少呢?等于是不是应该是三二啊对吧?直接回车,OK,那你看看一下是不是就这样的三种类型,对吧,这其实就是那个所谓的优惠券类型吧,对吧,有什么满额减价,有满量打折,这个还有代金券。
03:02
对不对?诶,这其实就是咱们优惠券的类型,OK啊,好,那接下来呢,我们再回到那张表,继续往下看啊,找到那张表,诶,跑哪去了?应该是ods哭旁in在这呢?来,我们继续往后看啊,那完之后下边这几个字段应该是什么意思呢?看看这condition amount condition number,然后呢,Benefit amount benefit discount,诶这几个字大家应该很熟吧,我们之前在讲活动规则那张表的结构的时候,是不是也有几个类似的字,对不对?它其实就是来用来描述什么,是不是描述这个优惠券的优惠规则的呀?没问题吧,OK啊,好,那这个怎么看我就不再解释了啊,是不是也是成对的去干满多少减多少,满几件是不是打几折呀?对吧?从那能看到啊,你过来下,这个肯定是number,还有这个班级费的第这是不是都是no啊对吧,为什么是no,因为咱们这三张优惠券的类型都是32013201,刚才咱们看了是什么什么类型,满额减价是满几件满多少减多少对吧,那所以说那这个那amount都是有值的,但是那个满几件打几折是空的。
04:02
这个搞清楚就行了,我们继续往后看啊,来看这这还有一个什么current time,是不是就是这个user创建时间呀,对不对,然后后边还有一个就是range time。R type r是不是就是范围的意思啊,对吧?哎,那这个范围指的是什么范围呢。那其实咱这可以告诉大家,这个指的是优惠券的优惠范围类型啊,那这个具体的优惠范围类型到底啥意思,咱们去看一下,是不是只需要看一下这个三三开头的是啥意思就完事了,对吧?那咱们去找一下啊,找到这个贝斯DC33开头了,咱改一下来直接回车,你看这是什么东西,品类券,品牌券和单品券,现在应该就能搞清楚了吧,对吧?啥意思啊,就说我这个优惠券对吧?我的优惠范围类型可能是什么?可能是品类券,那就意味着是什么呢?是不是某些特定的品类是能够用我这个券的呀,对不对?那如果我的优惠范围类型是品牌对不?那就说明啥意思,是不是某些特定品牌能用过这个券了,对吧?啊,当然了,还有这种单品类的啊,这个搞清楚就行了,好了,那这也是一个这个字典啊,咱们搞清楚了,那接下来呢,我们再回到刚刚的那个,哎,空房阴缝那张表,好,那继续往后看,后边这个其实就简单了,Limit number什么意思?
05:15
我这个券你一共能领多少张对不对,每个券是不是都是不是无限的呀,对吧?诶往后走这个是什么?是taken to的,是不是已领了多少张啊对吧?好,那接着往下到这儿有一个start time,这个time其实就是我们这个优惠券它的一个是不是生效时间,对吧?你得在这一刻之后是不是才能去用啊,对不对,是这样的啊,接下来继续往下走,那这有一个什么,有一个什么end time什么时候结束,什么of time什么时候修改的,PI什么时候过期的等等等等,那这还有一个DT,哎,这个咱们就不再多说了,好了,那这就是咱们这张表的一个表结构,OK,那其实与优惠券维度相关的表我们只有这一张,那所以说优惠券维度表的字段是不是主要就是来自于这张表啊,对吧?好,那现在咱们就来分析分析,你说我们从这张表里去获取优惠券维度表的字段的时候,咱们这里边儿会用到前面的建模理论当中的哪些知识点?
06:06
琢磨琢磨啊,OK,你从这张表里去拿这个优惠券维度表的字段的时候,两种方式嘛,一种方式怎么做直接拿,还有一种方式是不是可能会加工啊,对吧?OK,这里边大部分的字段咱们都是可以直接拿的,对吧?那有没有可能需要去加工一下的呢?有没有?有没有,其实有谁其实可以加工平台,就是这个规则吧,对吧,你看这个规则我目前说看起来是比较麻烦的,对吧?哎,那将来我为了方便,我是不是可以直接在咱们的维度表里加上一个这样的规则,咱们提前给他拼接好了,对吧?哎,是这样的,所以这个规则咱们可以加工一下,好,那还可以用到什么知识点。这是什么东西?这是编码对吧,对不对,那我们前面讲过,在确定维度表当中的属性的时候,我们有一个要求是什么来着。都忘了都忘了啊,咱们还是去看一下之前的这个理论吧,来去找一下维度设计的这个要点,呃,应该是在这个位置来步骤来往下走,是不是这是确定维度属性有这样的三个要求啊,对吧?尽量生成丰富的维度属性,尽量不使用编码,而使用明确的文字说明,那咱这是不是正好就有编码,对,所以我们到时候是不是得把这个编码给它翻译一下啊,对吧?诶,这是咱们需要去注意的,当然还有就是尽量沉淀出通用维度属性,那一会儿咱是不是就得沉淀一个呀,对吧,就是那个什么那个优惠规则是不是得沉量一下,对吧?OK,那这实际上就是我们一会儿用这张表去设计优惠券维度的时候,咱们需要用到的一些建模的相关知识点,其实都比较简单,现在大家应该是能够把知识点跟我们这个具体的实际情况对应上了吧,对吧,搞清楚就行了,现在那接下来呢,我们继续往下走,呃,现在呢,我们就可以开始去设计一下咱们这个优惠券维度表的表结构了,那是不是就是明确行还要列就完事了,对吧,首先先明确行,行其实跟它保持一致就完事了,我们这儿只有这样的一张表,那它其实就是那个主谓表了呗,对吧,那一。
07:54
堂就是一个优惠券,那字段呢,字段这里边大部分的字段是咱是不是都可以直接拿过来啊,对吧,完了之后除除此之外我们还得怎么样,还得加几个字段对吧?首先要加的就是这些编码值的一些解释吧,对吧,我们通常是不是编码与文字共存对不对,编码也留着,然后在这在这儿再给他加上一个这个解释啊,是这样的啊,那完了之后呢,还得做一个操作,什么操作来着,是再加上一个优惠规则的字段对吧?字段基本上就是这些,那行列不就都确定了嘛,对吧?好,那最后呢,我们来看一下最终的键表语句,这个我们就不再一点上去去说了啊,来找到这张表的鉴表语句,我们往下走,找到第二张维度表,来往下拿。
08:32
CTRLC给我拿过来,拿来之后呢,我们放在这个笔记当中啊好吧,各位同学,那现在我们来看一下,就是这张表的最终的这个表结构啊,首先还是先来明确一下它的表明DM层名呼旁表明负,是不是那个每日全量的一个意思啊,对吧?好,这个满足命名规范没啥问题,接下来我们来熟悉一下它的表结构,行列分区啊,行一行就是一个优惠券,这个不多说,然后就看列了啊列这里边其实绝大多数的字段是不是都是来自于咱们的这张表啊,对吧,你可以左右对照着去看一看啊,然后呢,我们就不再一个一个看了,我就给大家点一点,然后呢,说一下什么呢,就是我们这张表当中的一些咱们自己加的字段都有谁就完事了,那这里边我们自己加字段有谁呢?首先一个就是。
09:14
他是不是coupon type name对吧?这个是我们自己加的,相当于加了一个编码的解释嘛,除了它其实还有一个编码嘛,这是那个购物券的类型的编码,还有一个是什么,是那个优惠范围的类型嘛,对吧,这儿也有编码,所以在这我们也得给他加上一个,诶解释这个没问题,然后还有谁是咱们家的。诶,优惠规则这个字段benefit rule,咱们左边这是没有这个字段的吧,对不对,应该是能够搞清楚的啊好,那这个优惠规则我们这要求是什么样的格式的,得写成这格式满多少减多少元对不对,然后呢,满几件打几折,咱们得写成这种规则,OK,那一会儿我们就按照要求,是不是给他拼一下就完事了对不对,OK,那这实际上就是我们,哎特殊自己家的资本,而其余的这些东西呢?哎,都是直接,诶来自于咱们这张表了,哎,这个大家搞清楚就行了啊好了,那这就是咱这张板这个具体的字段就是这么设计出来的,其实很简单啊,好了,行列完事了,最后就是分区了,分区是不是只要看到这个负的后缀,你就知道它的分区怎么设计了,对吧?一行呃,一天一个分区,每天的分区存放当天的全部的优惠券信息,那就完事了啊好了,那这张表的表结构咱们就算是告一段落了,来视频我停一下啊。
10:22
呃,来吧,各位同学,咱们来分析分析它的数据状态怎么做,那实际上它的数据装载,那将来我们要写完之后,肯定也是一个什么样的,也是一个insert加select的这样一个语句,对吧?所以说我们还是得先搞清楚是不是select from是哪张表,Ser input是哪张表啊,对吧?数据从哪来到哪去,那你说咱这张表的数据应该从哪来呀?其实主要是从ods层的这张表来,对吧,但是只从这来行不行?不行,为啥对,你是不是得拿一下这个编码的名称啊,对吧?这个名称是不是应该是来自于编码表对吧?所以说咱这张表的这个数据状态语句呢,数据来源有两张表,一个是诶ods库房因分负,一个是ods是贝斯dic那张表对吧?诶一共是这两张表,好,那这两张表你会发现它也是哪种表,也是每日全量表啊对吧,是不是都是负对吧?那都是负的话,那你说我每天往这张本里装载数据的时候,是不是也是只需要拿一个分区就行了,对吧?拿一个分区是不是就已经拿到全量了,对不对,OK,也是拿当天的一个分区就行了啊拿到之后呢,我们需要对这个数据呢进行一个处理,处理完之后怎么办呢?是不是也是写到这一张维度表的,今天的一个分区里就完事了,对不对,OK,其实他的这个,呃,数据状态的一个流向呢,跟我们商品维度表一个流向差不多,对吧,是不是就是当天的分区对当天的分区啊,对吧?诶就是这样的,行了,那这个大概的流向咱们搞清楚了,那下节课呢,我们就再去写一下这个最终的状态与句吧,来,我把视频停一下。
11:48
啊。啊,来吧,那现在呢,我们就还是以14号的数据为例,来写一下咱这张表的一个数据装载的语句啊,OK,那现在咱们就来看一下这个40个元到底应该怎么写啊,咱们都知道这张表的主要主要的一个数据来源就是这张表对吧?那所以在这呢,咱们应该是先来一个是不是select呀,对吧,咱from from哪张表ods层的,但是coup in for负,那当然这也是一个全量表,所以在这儿呢,我们只需要拿它一个分区就能拿到这个全部的数据。
12:18
好,拿到之后呢,现在呢,我们呃拿它的哪些字段呢?其实咱们这儿可以这么做啊,我们可以先尝试着是不是先获取咱们这儿所需的每个字段呀,对吧?能拿到的咱们就留下,拿不到的是不是再想办法呀,对吧?OK,那现在咱们CTRLC把这个得处理一下啊,得把这里边没用的东西都得给它清理一下,我们只留下那个字段名就行了,那这里边咱们怎么删它呢?我可以这样啊呃,先把这个鼠标点在这个位置,然后呢,摁着ctrl out ctrl out啊,然后按下就能够进行这个猎选的操作了啊往下走,然后列选,列下之后呢,把这个是不是前面这个飘号先给它上来,对吧?然后CTRLF完之后你再来一个飘号,然后点星对吧,是不是就能匹配到后边的这个东西啊,对吧,全部选中串中之后按按一下删除,然后呢,再来一个逗号,OK,那现在呢,我们把这个字段就算是处理好了,诶CTRLC拉完之后呢,咱给它放在这个位置。
13:10
呃,就是有同学可能这个快捷键啥的用的不太熟啊,那一会儿我花一点时间给大家简单的介绍一下这个这东西就是这你要是用熟了之后,这个能提升一点效率啊,还是有点用的啊,那行,那现在呢,我们继续往下走,那各位同学,那到目前为止这个字段咱们都处理好了,但是很明显这里边有些已经报错了,对吧?报错的就是咱们拿不着了对不对,那看一看哪个拿不着啊,首先第一个就是coupon type,这个其实啊在咱们的表里边原来是有的。对不,在ods这表里是有的,对吧,只不过咱们这个字段名跟他不一样对吧?那咱们其实只需要把这个扣的删了,是不是就应该是能够拿到了呀,对不对,OK,但是name这个肯定是没有的吧,这个他想办法去别的地方拿啊,好,那咱们现在呢,就先给它注掉,拿不到的先注掉啊,往下往下走,下边这个benefit rule这个其实原表也是没有的,所以也是给它先除掉,好下边这个这个是不是一样的道理,先把这个扣删了就能拿到了,然后下边这个呢,来给它除掉对不对?OK,那现在剩下的字段应该咱们是都能够拿到,这个没啥问题,对吧?好,那接下来我们继续往下走,下边呢,我们要做的工作就是干啥。
14:10
是不是得去获取一下我们所需的这些拿不到的字段,对吧?呃,Benefit rule,这个怎么拿,是不是一会儿咱们得自己拼呀,对吧,这个好说,一会再说啊,那现在呢,我们先去拿一下这两个type name,这两个type name我们应该从哪拿?得从哪拿,得从base斯dic自源表那边拿吧,对不对,OK啊好,那接下来呢,咱们就去拿一下啊,首先我们先来拿一下这个coupon type name啊呃,Co是不是那个优惠券类型的编码对吧?OK,那现在呢,我们去拿一下,首先我们应该是select from那张表,Ods层的应该是那个basedc负这张表对吧?好,那玩我们拿一个位DTDT等于2020杠零几零六杠幺。交四对吧,哎,就完事了,OK,在这里边我们拿哪个字段呢?拿一个是不是扣呢?再拿一个DA name,那么那是不是就完事了对吧?OK,好,那完成之后呢,我们下边呃,可以给他加一个过滤条件了啊呃,因为啥呢?因为你要这么查的话,是不是所有的编码都查出来了,对吧?但是我们目前其实现在只需要谁,目前是不是只需要拿到这个,呃,就是优惠券类型的编码以及相应的解释就行了,对吧?优惠券类型是以什么开头的来着,以三二开头吧,对吧?所以在这儿呢,我们是不是可以来一个parent的扣的等于三二啊对吧?诶,那这样一来,咱是不是能够把这几个相应的编码给它拿到,没问题吧?好,那接下来我们继续往下走,你除了拿它,你还得拿谁,是不是还得拿一下这个润制它吧,也就是优惠范围类型的这个编码啊,对吧,OK,那在这儿呢,我们其实可以把它给它复制一份吧,对吧,复制完之后放在这这儿来一个啥呢?来一个30节,33是不是就完事,它是三三开头的对吧?好,那在这儿呢,我们再查一下是不是它咱也就给他拿出来了,对吧,好了。
15:53
OK,那我写在这儿,不知道有没有同学有疑问啊,你这个东西。需要写两遍吗?我写一遍行不行?
16:01
有没有人有这个疑问?可不可以写一遍?能不能写一遍?你要是想写一遍的话,你只能用谁去写那个公共表表达式能实现一遍的效果,对吧,那咱们现在先不考虑那个VS那种语法啊,咱们就是传统的这个照应方式,就是子查询的这种照应方式,对吧?比如说我这写一遍能不能写,写一遍行不行。对吧,只写一遍,只写一遍的话,那呃我完了之后呢,是不是这个呃type name我也用它,那下边那个我这个什么type name我也用它,这样能行吗。这样肯定是不行的啊,呃,我在这儿给大家解释说,为什么不行,因为是这样的,你要知道啊。就是首先对不对,首先啊,那我们,呃这个第一个字查询对吧,我们这是缺几个字段呀,是缺两个字段,这是不是缺一个它,这是不是缺一个它对吧?没问题吧,OK,好,那这两个字段对不对,它对应的我们那个base斯dic里边的字段,其实都是哪个字段都是dic name对吧?是是这个道理吧,OK啊好,那完之后呢,假如说我这儿呢,我只写一个这样的子查询对吧,下面这个我给它注掉,但是下面这个注调的话呢,你这个管理条件,理论上这儿是不不能这么写了呀,对吧?诶你可以先不写的啊完了,假如说我就这么写,这么写的话,你看能不能满足我们最终的要求啊,你这么写的话,相当于我这儿最终撞的子查询是不是只有俩对吧,这是我的第一个子查询,那这儿呢,是不是我的第二一个子查询啊,对吧,John的时候是不是横着拼这个字段呀,对吧,那拼完之后我这儿缺俩字段对吧?但是你这样呢,你写一个查询,我这只有一个dic内,我只有一个dic name对不对,我是不是只能拿到一个对不对,那你要是想拿到俩字段,你是不是必须得写两个自查询。
17:41
才行啊,对吧,这个一定要注意一下啊,就是我怕这有同学可能会纳不过这个闷儿来啊,其实这个很简单,哎,这俩字自查学必须得写一下啊,OK,那现在呢,我我得给它放开,OK,那假如说你要真想只写一个自查询对不对,那完了之后你得用那个公共表表达式,那一会儿呢,我也给大家演示一下这个公共表达式怎么用啊,好,那这边呢,咱们还给它恢复过来啊,上面呢,我得保留那个三三级是不三二那个呀,对吧?好,那现在子查学咱们都已经搞定了,接下来我们要做的工作就简单了,我们只需要干啥是不吧,咱们join一下对吧,然后呢,最后再把这个规则给他拼一下,那就完事了,对吧?好,那现在呢,我们先给他完成一下这个join的操作,这个我给它去掉,这个呢去掉,那这个呢给它去掉好,那现在我们既然要join,所以在这了,我需要先给他拿一个查群,呃,这回我就先不用那个cte哎,那个语法了啊,那一会咱们再用,OK,那这个也给他放在一个括号里边,CTRLV,那这个呢,给它往前推一下好,那这个呢,我们也是给它放在一个括号里边来,呃,CTRLV,好,那现在他们仨是不是各自得给它们起一个别名啊,对吧?呃,第一个呢,我就叫。
18:41
做cou啊,叫做简写就行了,库房的简写啊,那下边这个呢,我们叫做呃,这个叫啥呢?这个叫type吧,啊type,然后呢,D,那下面这个呢,我看看我叫啥啊,这个叫做呃,RG,然后呢,TD没问题吧,两个这个自带表行了,那这个别别名都起好了,我们现在是不是就可以做关联了,那他们仨咱们用哪种关联方式啊?
19:05
其实用lefto是不是就完事了,对吧?那咱们还是以这个枯旁这张表作为主体对吧?然后让下面跟它进行left左连,好,那现在我们写一下连接条件啊,呃,第一个跟第二个它的连接条件应该是啊,应该是cou点点谁应该是那个最开始的那个type库房type对吧?它应该等于往下走等于谁等于这个TY PE tap_dic里边的谁,Dic是不是扣的呀,对吧?OK,它俩就关联上,那接下来呢,我们是不是再紧跟着一个left状呀,对吧?Left然后呢,我们去写一下下面的这个连接条件啊,这个连接条件应该是它等于是不是?呃,这个拿过来,那这个呢,应该是range type里边的呃,Type那个字段对吧?诶,它等于这个D里边d code这个没啥问题吧?好,关联就关联好了,那接下来呢,我们继续往上走,下边咱是不是就可以直接来一个select from这些字段了,对吧?那这里边呢,我们先尝试着把所有的字段都给它拿出来,CTRL。
20:05
对,拿过来,拿来之后呢,我们给它放在这个位置啊CR啊,那这个给它删一下,那这边呢,咱们给它往前推,呃,当然这里边还是需要把这个扣的字段是不是给它调整一下对吧?诶给它删掉OK,那这个内幕咱们这应该怎么办?Name幕拿谁?Name幕是不是应该是拿这个子查询里边的dic name幕啊,对不对?你看啊,这时候是不是应该体现出来了,就我们这儿是不是必须得写两个子查询才行啊,对吧?与那个不能写一个啊,那首先我们先来一个这个TY PE type diic里边啊Di name没问题吧?好,那接下来往下走,这个咱们暂时还是拿不到啊,先不管它,那这个呢,给它调整一下,把这个扣子去掉,那它呢,是不是应该拿diic里边的diic name对吧?诶,Dic里边的diic内好了,那这样一来的话,我们这俩字段是不是就都补齐了对不对,OK,好,那完成之后,我们现在只差最后一个工作,就是来去处理一下这个benefit rule,这个怎么处理呀?对字符拼接对吧,肯定是要用康开的对吧,但是咱这能不能直接康开的。
21:05
直接看开的行吗?直接看看的不行,为什么呢?你想啊,就是咱们这儿是不是呃有不同的这个优惠优惠类型啊,对吧?OK,那我得是不是得是不同的类型去拼接不不同的字段呀,对吧?有的类型我可能需要把它,哎是不是跟上面的它进行一个拼接,有的呢,我是不是要把它跟它进行一个拼接啊对吧,我得看不同的情况去做不同的拼接策略,对吧?那这应该具体具体应该怎么去写这个三呢。用用if合适吗?这儿用if其实不太合适,If只不是只能适合两种情况对吧?OK,但是咱们这有几种,咱们有几种类型,应该是三种类型吧,没有记错的话,来看一眼,咱们是三种类型对吧?满额减价,满量打折,还有代金券,什么叫代金券啊,代金券相当于是没有优惠条件直接减,对不对啊,是这样的,所以咱这应该是三种类型,三种类型用if就行了,用谁用用用用K问是不是就行了,对吧?来,那现在呢,我们用K问一下啊来往上走,所以在这儿呢,咱们应该是呃,用case问去实现这个功能,那首先我们先把这个case的语法给它明确,首先case最终得有一个什么end的吧,对不对?后边我们给它起个别名叫做be fit benefit,是不是弱啊对吧?好,那先把这个case写上,当然别名不写也没事啊,里边咱们应该怎么去写?
22:20
是应该这么写,应该是问问什么TYPE等,呃,应该不叫TY,应该叫什么type吧,叫做库旁type吧,对吧,咱们是不是得对它进行判断对吧?来CTRL为应该是Co旁type等于多少等于多少3201对不对,那我就ZZ怎么怎么样对不对,OK,好,那完之后呢,CTRLDCTRLD,如果是3202,那我就怎么怎么样对吧?那如果是3203,那我是不是就又怎么怎么样啊对不对,这个应该是这仨吧,320132023没别问题吧,OK,那正常应该是这么句子,后边是不是就再去拼接相应的字段,那就完事了,对不对?然后大家稍微注意啊,这个Z我们先不写这个简单,然后看这,你注意观察,这个就是判断条件,它们有什么样的特点。
23:02
他们是不是都是在对同一个字段进行一个等值的判断呀,对吧,就是在这种情况下,其实我们这个可以调整一下这个写法可以怎么做,可以直接把这个字段是不是提到case这个位置来呀,对不对,OK,你可以把这CTRLC拿过来,完整的CTRL位放在这个位置,那这里边咱就怎么写就行了,诶你直接就留一个值式就行了,对吧?所以在那我们右键选择这个列选模式column selection mode对吧,然后按着鼠标单鼠标,然后呢往下拉,诶之后呢,你就直接删,那就完事了,对不对,那就只只把它给它留下,那就OK了啊是这样的,然后我们在右键,然后关闭这个裂选模式,OK,那也就是这样呢,我们这种情况下是能够把这个判断条件是不是往上提的呀,对不对,但是不是说所有的情况都能提,对吧,是不是只有是对同一个字段进行等值判断才能往上提啊,对不对,这个一定要注意啊,行了,那现在我们就继续往下走,那下边呢,咱们需要做的工作应该是什么呢?是不是就是拼了呀,对吧?那3201,那应该怎么拼,是不是应该是满多少减多少对吧,那应该是慷泰的。
24:03
一下里边呢,应该先写一个汉字对吧,应该是满,你写一个三对吧,满多少,那多少是多少啊,应该是满那个BY,那那个condition对吧?诶condition是不是帽的,这是满多少嘛?啊后边呢,应该给它写上一个是不是元对吧?然后后边是减去啊减多少多少元对吧?OK,那减多少元,这个应该是多少呢?应该是那个benefit mark吧,对吧,这是减多少,然后后边呢,补上一个单位就是元没问题吧,这个是不是就已经拼好了一个了,OK,那接下来继续往下走,那再往下是啥呢?是3202是满几件打几折对吧?那这个呢,我们就基于这个稍微的调整一下啊首先呢,那这里边我们应该是把这个肯迪number改成肯迪是呃condition month改成condition number对吧?那这个是不是就是满几键了呀,对吧,这个应该是件数,反正后边是不又不是减的,应该是什么呀,应该是打折对吧?哎,打几折,那这个呢,应该是BY捏be ne啊,然后F应该是benefit discount,那这个呢,我们写一个是不是折呀,对吧?哎,折扣好了,那这样一来他也就搞定了,最后。
25:03
这个是啥呢?最后一个是是不是直接减呀,对吧,相当于是没有条件嘛,代金券对吧?那所以在这呢,应该是拿过来,呃,我们把前面的条件给它删了对不对,那后边呢,只留下一个是不是打几折,那就诶是单是代金券还是折扣券啊,是代金券对吧?代金券那就不能减它,咱们应该是处理上面那个对吧?OK,那CTRLC代元券是直接减嘛,有折扣券啊,这个还不一样,那把这个给它去掉完之后呢,上面只留下一个减几元,诶那这样一来,咱这个拼接是不是就做完了呀,对吧?诶是这样的啊,但这里边其实还有一个小细节需要大家说明一下,哪块呢?主主要是关于这个折扣啊,关于这个折扣,呃,你像这下边这个满多少减多少,这个是多少,它就是多少对吧,但是这个折扣呢,实际上呢,我不同的这个业务系统,它这存的值可能就不一样了,什么意思,不允举例,他假如说我这规定是打八折,那我的业务系统当中,我这个班级费的低算,它可能写的是八,它也可能写的是多少呢?0.8是这个道理吧,那甚至呢,还可能会写什么呢,比。
26:03
就说我写一个0.2是不是也有可能啊,对吧,是这样,所以在这儿呢,你得看它具体他那写的是什么,就是我们这个业务系统当中呢,这是这么设计的,如果你写的是哎打八折,那我OK,在这其实存的是一个0.2啊这样的,所以在这呢,咱们不能直接这么去写这个discount啊,得怎么做呢?你得调整一下,对吧,那你应该是怎么去做,是不是得来一个,是不是一减去这个disc斯T,再怎么样,再乘个十对不对,哎,那这样一来,你比如说我这要存0.2,那是不是就是打八折了呀,对吧?诶得这么去处理一下,稍微注意一下就行啊,这个当然小细节无所谓啊,行了,很多同学,那截止到现在,那这个select语句咱们就都写完了,写完之后呢,我们给他查一下啊。嗯,OK,好,目前没报错,说明语法没问题啊,然后我们看一下后边拼接的那个规则,那满多少是不是减多少就出来了对吧?诶比较简单,其他的应该没啥问题啊,这个我们就不再一个一个去看了,好了,那最终我们需要给它补上一个是不是in inside的语句啊对吧?In色or table加上dim,呃,应该是库房in for,哎,呃,库房负这张表对吧?当然后边呢,我们需要指定它的分区,这个写在哪个分区,应该是2020杠零六杠幺四这个分区,诶,是不是就OK了对吧?那这个我们就暂时先不去做这个insert,后边我们再用脚本统一插入就完事了啊行了,那这个数据状载语句到现在为止就开始写完了,来视频我停一下啊。
27:20
呃,来吧,那现在呢,我们再来看一下,就是到底怎样用这个公园表达式这个语法对吧?去省这样的一个自查询对不对,那也是在这儿呢,我只写一遍啊,完了之后呢,我让他用两次,我看看这个到底怎么实现,呃,那当然在这儿了,你要想去那么弄,是不是这个第一个在查询不受影响,该怎么写还得怎么写对吧?OK,那说在这儿呢,可能自己拿过来,那之后呢,我放在这个位置,呃,在这儿呢,我们就得用那个所谓的公共文法式去声明一下了,应该是用with,然后后边加上一个诶别名咱还叫CU,然后后边来一个X是不是就行啊,那之后呢,咱需要把它是不是放在一个诶括号里边,诶对不对,这个CTRLX啊,放在一个括号里边,诶,然后CTRLV拿过来之后呢,这边咱给他往前推一下,好,第一个子查询咱是不是就声明好了对吧?OK,那接下来呢,我们看第二个第二个子查询呢,我们要是想用两遍啊各位同学,你说我这还能去加这个过滤条件条件吗?
28:11
就不能了,对吧,你你得你至少得把包含三二和三三的是不是都得拿出来,对吧,那在这儿呢,我们就不再去写那个二去了啊,那直接就把这个全表的数据拿出来就行了,本来这张表是不是数据量也不大呀,对吧,也都拿出来也无所谓啊好,那现在CTRLX我们来一括号。诶怎么回事?诶什么情况?那好了啊,那我这来一括号啊,来直接回车L,那CTRLV放在这个位置好,那现在呢,我们继续往下走啊,那在这呢,我们给它也起一个边缘,在这我们叫什么就叫dic就行了,DC,然后前后是不是得得加一个逗号风格呀,对吧?后边这儿给它补上一个S好了,那现在两个查询是不是生理好了对吧?注意现在这个咱是不是只查了一遍对不对,那现在看一下我们接下来怎么去写啊,那在这呢,你就得这么去say like了啊,然后首先不是from对吧?From谁说from Di,没呃,先先from cou吧,先上第一个啊玩他得干啥呢?是不是得去left draw一下对吧?那我们写在下边啊,往下头应该是left draw join谁呢?是不是先得join一下这个DIA对不对,然后是不是得写一个连接条件on什么是不on cou,然后点是不是得用第一个那个type先进行关联,对吧,应该是type,呃,这个库房type对吧?它应该等于谁等于DDC点点什么是不是dic code的呀,对吧,没问题吧。
29:28
好,那我是不是还得再照一下对吧?啊就是说哎,你这种写法呢,只是说我这儿声明的时候,我可以只声明一次,但我照样,我是不是还是该照你几个照你几个对不对,所以说你还是得再来一个left撞态啊,来一个left照后边这写一个啥呢?是不是写一个DIA对不对,然后后边来一个on on什么,应该是on是不是cou,注意这回还还用刚才那个tap那个去去照,还用那个呃这个这个Type Code的去吗?呃,库王tap去照吗?不是了,应该用谁该用日日type对吧,他应该等于它,然后它是不是也等于DA扣的呀,对吧,OK,那你正还是得这么去照,好,那完了之后我们继续往上走,上边咱们就得干啥去了,是不是得select一下我们所需的这一堆的字段呀,对吧,这个查询的逻辑其实跟哪是一样的,跟上面是不是一样的呀,对吧,所以在这呢,我们就不在这个一点点写了,咱直接把这个CTRLC拿过来,拿过来之后呢,给它放在哪,我给它放在是不是这个位置就行了,对吧?诶放在这,那当然这里边是不是这肯定会报错呀,对吧,那在这咱们怎么写呢?是不是应该来一个DA,这个是不是也是一个。
30:28
D啊,对吧啊,那完之后这个是不是好像就写完了,写完之后,那大家说这个三号能不能执执行成功能不能执行成功能不能,咱是不是可以测一下啊,对吧?啊,那现在呢,我直接这个回车。诶直接就给咱报错了,为啥报错,你看他报的是什么错。Ambiguous table alias d什么意思?是不是DC这个表的别名也是紫查询的别名,它是有歧义的呀,对吧?啊这个为啥呀,这个很简单,你想啊,咱现在呢,相当于做了一个什么操作,做了一个这样的操作啊,首先第一个子查询我们叫cuu,是不是放在这儿了,第二个子查询咱们叫叫dic,我第三个子查询呢,我还叫dic对不对,那我上边你看啊,去选择字段的时候,它我是不是从dic里边拿,我这个时不是也从dic里边拿,对不对,那你拿的时候我是不是有俩都叫dic啊对吧,那我到底拿谁呢?他是不是就懵了呀,对吧,不知道拿谁,所以会有歧义嘛,对吧,他说在样咱们怎样去处理一下这个问题就行了呢?很简单,我们只需要给这俩dic是不是各自起一个自己的别名就行了,对不对,直接在后边来一个dic_一,这个呢,我们给它来一个dic_二对不对,那当然你后边也得调一下了啊,那这个应该怎么去写,应该是它等于dic是不是一,然后点dic扣了呀,对吧?那这个呢,我们应该是等于dic。
31:50
A2对吧,点dic的这个应该没啥问题吧,哎,那现在就这上,那这上之后你再往上走,那上面是不是就可以去,呃,去选择咱们这个一和二了,对吧?那这个我们选DIC1,那这个下边呢,我们选dic下角线二对不对?那这样一来你再查它应该就不会出问题了。
32:09
诶,你看这个结果是就出来了,出来之后你看这个该拼的是不是还是拼上了,对吧,跟咱们那个其实也没啥问题,没没没应该没啥,呃,没啥区别对吧?这个dic扣的啥的也都拿到了,来看一下这边,呃,往后走往后走,诶那个润type,那在这的品类券也没问题吧,对啊,好,那截止到现在呢,我们这个所谓的公共表表达式这个写法就完成了,现在呢,大家体会一下啊,就是这个所谓的公共的意思,对吧,是不是在这儿只写了一遍,我下边就可以重复的去使用它了,对吧?这就是公共表表达式啊,叫做cte啊,全完成之后,视频我停一下。
我来说两句