00:00
来,那接下来我们该做这个本周回流了,是不是本周回流,这个本周回流我们应该这个怎么整啊,本周回流。啊,先回忆一下这个需求的定义啊,熬周回流的需求定义是啊,上周未活跃,然后熬周活跃了,对不对,这是它本身的定义,但是这里边呢,呃,会有漏万之余,呃,为什么?因为本周新增是不是也满足这个条件,因为本周新增他上周肯定也没活跃,但是本周呢,他肯定活跃,但是它不是回流,新增不是回流,回流一定得是老用户啊,那所以这里边咱们最终这个需求我们就定义下来了,应该怎么求啊,这里边其实有啊,本周回流啊,它这么定义的,上周未活跃啊,本周回跃的设备,并且不是本周新增,对不对,这就是本周回流啊,那这个咱们到底怎么去实现呀,这个。啊,怎么实现呀。其实这里边儿呢,我们其实就可以做一个减法啊,做一个什么减法,大家想想啊,本周回流,你说它肯定出自于哪。
01:05
出自于哪儿?本周回流肯定出自于本周活跃。对不对啊,肯定出自于本周活跃啊,所以说我们可以先把本周活跃找到,然后呢,再从本周活跃里边把什么样的去掉,把本周新增是不是得去掉,然后还得把什么样的去掉,把上周活跃的那部分去掉,对吧,对不对,那剩下的是不是就是咱们所谓的本周回流了呀,没错吧,应该是这样一个思路啊,这是咱们这个思路,那这个所谓的减法,那到底怎么做呀,这个所谓的减法。这个所谓减法,比如说我现在呢,想从本周活跃当中减掉本周的新增,这个所谓的减怎么减?怎么去掉啊,咱们用so怎么实现呀。啊,其实这块呢,你可以这样去做,比如说我先写一个紫查询,把本周活跃找到,对不对,再写一个杂查询,把本周新增找到,那大家说本周活跃跟本周新增他俩应该是什么样的关系?
02:08
本周活跃肯定包含本周新增吧,不要这样的一个关系啊,那我们想要的应该是哪部分呀?应该是去掉本周新增,比如说下边绿旗啊叭如说诶,我应该是去掉本周新增的那部分,应该是哪,是不是应该是这部分对不对,那咱们怎样可以得到这部分数据啊。其实很简单,我们就做一个啥。用本周活跃跟本周新增,咱们做一个什么。做一个left round是不是就行,做为什么得做left draw啊,因为咱们是不是得获取这一部分呀,对不对,那你要做left round,那那你反过来是不是应该是这这这左边全部的数据,但是我们只想要这一部分,所以说left完之后呢,咱们得加一个过滤条件吧,那过滤条件应该怎么写呢?应该是右边这个这半部分,它的字段为not的数据,是不是就咱们想要的那部分呀?哎,你可以这样做啊,或者说你可以更直接一点,直接用啥呀,是不是用not in是不是也行?
03:03
对不对,我先把本周哎这个活跃找到,然后呢,再写一个子查询是本周新增。那咱可以怎么写呀,是不是从这里边去选,然后呢,你的过滤条件应该是啥啊。应该是啥,应该是mid not in not in,哪not in这里边,那是不是就是这部分。对不对,是不是这个道理啊,也可以单去写这个not yet呢,可能更直接一点啊,更直接一点,其实是这样的啊,我们之前在那个have的很早的版本啊,零点几的版本的时候,Have呢,其实并不支持这个in和not in的语法的。当时并不支持的,不支持,我们要想实现in或not in的效果,怎么实现的呢?就用left join这种方式啊,就用这种方式去实现的啊,所以这个写法呢,就是习惯了啊,其实现在呢,我们也没必要非得用left draw了,你就直接in或not in是不是就行啊啊就可以啊,就是之前是因为没有in或not in的语法,所以说习惯上用left join啊,然后呢,根据这个字段是否为no去判断啊,然后去获取想要的数据,但现在支持not in和in了,我们就可以直接用,其实啊,是这样的啊,好,那这就是所谓的减法呗,就这么减啊,减掉就行,那当然咱们这只减了一部分,是不是一会儿还得把上周活跃的也给它减掉啊,啊也减掉啊,好,那接下来咱们就开始去实现这个本周回流啊这个需求。
04:25
那按照我们刚才的思路分析呢,我们需要先拿到本周的活跃,那本周活跃刚才咱们是不是已经拿过了。是不是已经拿过来呀,对吧,这个是不是就是咱们本轴的活跃设备,可是C拿过来呗,诶从这拿啊来我们放哪放到这个本轴回流啊。啊,CTRLV这是不是就是本周活跃没问题吧?啊,那本周新增怎么拿呢。怎么拿?本周能怎么的?本周新增我们是不是可以从DW上拿,对不对,那DWT怎么拿,是不是select select,然后呢,我们怎么做来。
05:09
往前推来from from,哪from d wt层UV topic啊,那当然这里边呢,我们应该选mid啊,那下边呢,我们需要诶外过滤一下啊,Where应该是啥login data first啊,要拿这本周新增,只要这个东西大于等于本周一,是不是跟这个过条应该很像啊,那我们把它拿过来,然后改一下里边字段啊来应该是login data first,那这个呢,应该是login data first。First,哎,那这个是不是就是本周新增,没错吧?哎,这是本周活跃,这是本周新增,那刚才说了他俩进行一个left join对不对,然后呢,过滤条件应该是啥?应该是本周新增的ID为no。
06:00
这是过滤条件,那你返回的是不是就这一部分的mid,这就我们想要的对吧?哎,那那就是这么选呗。啊,那当然咱这块有必要这么去写吗?其实也没必要啊,我们要想拿到呃,这个本周活跃,然后呢,把里边的本周新增去掉,我们其实可以一条搜索搞定啊,怎么搞定啊,对,咱们从DWT层直接查就行啊,具体怎么实现呢?来看一下啊,我们是不是从cp select,然后上我们从DWT层是不是也能求当周的活跃,对对,也能求当周的,因为咱们DWT有一个末次登的时间,末次登时间呢,我们可以求当周的,当月的,当天的,但是前上一周的,上一个月的是不是不能求啊?呃,咱们这求的是当周的,那从那求呗,首先我们select from dwt层有一套big啊,然后单周的是什么呢?当周的,那是不是就应该是把这个拿过来啊,给它改一下CTRLZ啊,CTRLV啊。当然这个字段咱们得改一下啊,这个字段DT改成末次登录时间对吧?哎,Login it last啊,那同样的道理,CTRLC下边也是login it last,好,那这样一来啊,这个过滤条件是不是就能把本周活跃的过滤出来,对不对,然后呢,咱们再紧接着怎么样。
07:16
紧接着怎么样?紧接着是不是把本周新增的给它过滤掉就行了呀,对不对,那本周新怎么过滤掉,是不是加一个按的过滤条件,只要它的。首次登录日期是在本周之前,那它是不是就不是本周新增对不对,那所以说我们诶小于就行吧,小于谁小于谁小于本轴一啊CTRLC诶拿过来诶拿来之后呢,上面我们选一个mid。啊,OK,那大家可以思考一下啊,那你说咱们这个子查询所返回的结果是不是就应该是上边俩子查询进行left join,然后呢,再根据那个字段进行判断之后返回的结果呀,对不对?那所以上面这俩其实咱们就可以不写了,我们直接用下边这个行啊,诶你看现在能不能看懂这个啊,首先这俩过滤条件我们是从这张表当中过滤出来了本周的活跃对不对,然后呢,又从本周活跃里边再通过一个过滤条件将本周新增的是不是排除在外了呀,对不对,那这样一来,这就是相当于已经做完一个减法了啊,已经从本周活跃里边去掉了本周新增了啊,已经做完一个减法了,那我们还有一个减法要做。
08:32
还得把什么样的呀,把上周活跃过的是不是也得减掉啊,因为我们要的是上周没活跃的,然后本周活跃的对不对,那咱们是不是还得找一下上周活跃的有谁呀,对不对?那上周活跃的怎么着,上周活跃我们从DWT能求吗?不能这个一再强调啊,求上周的时候不能从DWT求,我们只能从那求DWS,那DWS咱们之前求过了,所以说这样呢,直接拿一下啊,这个就是上周啊来。
09:02
Coner c。哎,这个就是上证啊好,那现在呢,我们这已经有俩字查询了,那现在是不是又要做减法了呀,那这个做减法怎么做呀。啊,怎么做。怎么做?啊,怎么做呀。很简单啊,这直接就这么写就行啊,这边这是第一个子查询对吧,这相当于是我们本周的哎活跃,然后已经去掉新增了啊,然后这边呢,哎,看这个这个子查询,这答询是啥?是我们上周的活跃对不对,那我们大家都知道我们想要的应该是哪部分呀,想要的应该是这一部分吧。对不对,那中间这部分相当于啥,这个重活这一部分相当于啥,是不是本周活跃,上周也活跃了那部分呀,对不对,我们要的是啥?应该是只是这一部分,这是上周没活跃的那部分,那所以咱这个应该怎么写,想返回这部分数据,咱们应该怎么写。啊,这是我们想要的啊,是咱们想要的,怎么写啊?
10:03
用in对照行不行,In对肯定不行,对是不是反而就是这部分,这部分是这本周活跃,上周也活跃了,这不是咱们想要的啊,我们要的这部分,你要想要这部分的话,你必须得用啥,用left。那或者用谁也行,用负auto run也行,只不过就是你最后的过滤条件它不一样呗,对不对,那比如说我这呢,用left run,用left run left run本来应该返回的是这部分吧,对不对,那但是呢,我们只想保留这一部分,那所以说那这一部分和这部分它俩有什么区别呀,区别是不是在于右边这个自查询对吧,右边这部分二所二二这一部分数据啊,它所对应的右边的字段应该是啥?不不为闹,那一所对应的这部分呢,应该是全都是闹。所以说我们是不是应该可以根据哎,后边这个子查询的字段是否为no,然后呢,去判断哪部分是我们想要的呀,是这样的啊,那OK,那这个思路就是这么个思路呗,啊就这么个思路。啊,那当然还可以怎么做呀,其实。
11:03
还可以怎么做呀,还可以直接在这是不是and什么东西,And mid not in吧,In谁in下边这个紫查询呗,是不是这样就。CTRL这一项啊。来来,括号是不是你这样写也行啊,CTRLX,然后再把它放进来,这样写不是也对啊,这其实就跟你刚才咱们分析那个问题是一样的,就用那个left draw去实验的效果是一样的,对不对啊,这样写也可以啊,也可以啊,那当然咱们这呢就先不这么写了,我们既然分析的是left draw,那我们就用left draw这个方式去做啊,那所以说那接下来我们还是先把第一个再查询给它写好啊,CTRLX。CR。来我们往前推一下啊,这个就是本周活跃的啊,那应该就是current week呗,Car。那下边这个应该是上周的吧,啊CTRLX来回车CTRLV。
12:02
我们往前推一下啊,这个应该是上周last week lastt,然wa啊,本周上周啊,那我们应该做的是将他俩进行左外联对吧?Left轴join,那join的连接条件呢,那肯定是,哎,Current week count。啊,点mid。啊,等于last week。然后点mid mid好这个没啥问题吧,那接下来呢,我们需要从这俩子查询当中呢,去选择所需的数据,Select from是不是select from它,那from它之后呢,我们现在这个这俩表装完之后,大家说它是不是得到一个虚表啊,这个虚表长啥样,这个虚表。这是上周,这这是本周,这是上周啊,本周是current,这是last啊,这个续表应该啥样的,续表是哪部分,续表是不是这部分对不对啊,那然后呢,这部分是不是全是no。
13:02
调声道吧,我们所需的结果应该是哪?是不是应该是这部分,所以咱们是不是得写一个过滤条件,把这部分数据过滤出来呀?那怎么过滤,是不是应该是上周的ID为now,是不是就是我们的过滤条件呀,对吧?所以说在下边呢,我们需要写一个where啊,Where应该是last week.mid哎,应该是啥is no是不应该这么写,那这么写完之后呢,返回的是不是就是咱们所需的设备ID了呀?那这边咱是不是可以直接进行count他,哎,那他得到的结果就是我最终的结果了啊,就是最终结果了啊,那当然呢,我们需要给他补充一些字段,那先补一个啊,第一个字段应该是啥日期啊,2020杠零六杠幺四。啊逗号,那下边呢,呃,是不是有一个位和DT啊,也就说你算的是哪一周的哪一周的,那哪一周呢,那是不是也是用周一日期拼上周日期就行了呀,那接下来从上面拿一下啊来CTRLC。哎,我们放到这里。CRV把它放在这儿,那当然你放在这儿的话呢,我们需要改一下啊,这个是。
14:03
本周一啊,这个是本周好搞定啊,这个数序也完事了啊,就这么做啊,就这么做啊啊其实在这里边呢,就是要搞清楚一个这个所谓的一个减法,一个操作怎么去做啊,怎么做呀啊not in或者用什么这个呃,这个left round的方式都可以实现啊好,那这个就搞定了啊把视频录一下。
我来说两句