00:00
好,那接下来我们继续聊这个问题啊呃,那我把这个数据呢,呃,诶我刚才按到CTRLC对吧?啊,那这个是关掉了啊行,那我们重启一下,我把这个数据呢,给它拿过来,我复制一份啊好的啊,复制过来,然后呢,我给它粘贴在这个位置啊粘贴在这个位置,呃,然后接下来呢,我把这个结果数据啊复制,然后呢定在这儿,然后我们把这两个数据啊,我把它也复制一份定在这儿啊呃,然后呢,我们做一个对比。啊,做个对比来看,我把这个数据呢覆盖起来,就这样用这种方式来覆盖一下啊呃,那首先呢,我们来看啊,这个数据的对比之后,我们就接下来这个S克就好写了,呃,那么第一条数据呢,呃,它是这个这样一个数字,因为我们默认只给了个零啊,所以它还是自身,那第二条呢,是22 22是一,这个是78是二,这是二百三对吧,十也要三,然后呢,94变成46还是四啊然后呢,这个值还是一对吧,第一条数据都是一幺五六二百,大家有没有发现一个规律。
01:09
跟我们60之间的关系有没有发现?哎,其实有的同学应该能够发现到是不是,呃,那也就是说当这个数字怎么样,这后面这个数字啊,如果说它大于等于60,当然我们这里面没有60数据啊啊,如果说有60的话,大于等于60,这个分组就怎么样,就加一。就加一,那第一条数据默认是个一嘛,对吧,加一的话,那默认值从初始话,从零开始,我就可以认为它加一,你看它22小于60,这个一就不变,78大于60就变成二了,200又大于60变成30,是小于60的A不变。啊,不变,然后94又大于60了,是不是变了,只要碰到一个超过60的数据,咱们就发现这个字段就怎么样加一,那到了这种条件下,大家有没有一种思路呢。
02:08
对吧,那第三步我们应该如何去做呢?或者我们应该做什么事了呢?是不是就是根据这个字段判断它是否大于。等于60,然后呢。往上做一个累加,也就是说我们把这个再给大家看一下啊,来到这儿来,或者说我们用另外一种方式给大家去聊这个事儿啊好,呃,那还是把这个放过来,呃,那或者用另外一种方式,刚才我们说的呢,只要遇到一个大于等于60的,我们就加一啊这种呢,可能大家从思科的角度还是不好想,那我换一种描述啊,呃,大家有没有发现这一行。这个数字啊,当前这个数字也就是同肯定在用户分组下来做的,对吧?好,那第二个用户你先不看啊,那这个数字大家有没有发现到的,当这个。
03:13
诶,我们从这个角度来分析一下这个问题,好像是不是就变得简单了一点。来注意听啊,我刚才说的是最后这一个列,所谓的分组,是不是从这个角度来看,是我们当前这个新产生这个列,当前行。从第一行到当前行大于等于60数据的总个数。有没有发现,那么第一行只有自己大于等于68,只有一个,好第二行只有第一行跟第二行,那它大于60,它小于60,所以呢,它也只有一个啊,那么到了78这个数据呢?诶,它有两个78和第一行,也就刚才我们说的从第一行到当前行有多少条大于等于60的数据,那么这个就是几。
04:05
对不对,那从这个角度来说,我们是不是可以将这个S写成这样做一个累加,那其实就是求大于等于60数据的怎么条数呗,对吧,那这个问题就简单了呀,好,那到这块来呢,我们就计算从第一行啊,诶应该是从呃,计算每个用户范围内啊,对吧,这个一定要加一上范围内,从第一行到当前行,第一行到当前行。啊,刚才我们这个谁啊,叫PSD大于怎么样等于60的总个数啊,其实这个总个数其实就是相当于我们的什么分组的组号是不是啊,所以说呢,有时候写这个思考啊,你把你能想到的东西先写一写,写着写着你可能就有怎么样有思路了,对不对啊写着写着,那刚开始呢,我们分析到这块是完全我们正常的对于这个数据判断,如果让我们手动给他添加这个分组信息,那我们必然会这样去想,对不对?好,那接下来呢,我们把这个写一下,这个就很简单了啊呃,那select从第一行到当天行啊,ID保留,然后呢,TS保留,接下来我们要的是t s diff这个数据大于等于60的总个数,那我们怎么做?我们可以用some,如果说它这个数据叫什么t s diff对不对,如果它。
05:42
大于等于60怎么办?那我就记录个一,否则我记录零,那也就是说这个呢,我记录一,这个都是零,这个是一,然后接下来把这几个数字sum一下,是不是就是我们的组信息了,对吧?好,那这边呢,开窗不能丢了啊,Over叫partition by还是ID,然后all by我们的TS字段啊,之前我们写的是DT啊,那个写错了对吧?好,那这块呢,是我们的组,那我们就叫group ID,那你肯定不能写group,因为group呢,它是一个关键词对吧?啊那接下来呢,我们from这张表叫T几表了,T2表了吧?好,上面是TR表,OK,好啊,那此时呢,我们组就完成了,也就是说这个就是我们最终的一个S,也不用什么T3了啊,那所以呢,我把这个地方呢,啊,这个还是给大家保留在这儿吧,我再开一个啊,这个地方我写一个四啊,叫最终海。
06:42
啊,最终的还可那把这个一放T2表呢,前面加一个括号,诶,加一个这个英文的括号啊呃,然后接下来呢,把这个T2这张表这个拿过来往这一放。诶搞定CTRLC,然后呢,呃,把这个地方往这一粘贴对吧。
07:07
那我们只要静静的等着我们的结果,看跟我们这个地方是否一致就OK了,对不对啊。至于有时候我们写色科确实这样,你要呃把你能想到的思路先尝试写一写啊,写的过程当中呢,你看到这个结果,可能你接下来就有思路了,有时候这个circle它嵌套的紫查询可能会比较多,我们这个还好一点,就两三层对吧,顶多三四层啊,有的嵌套比较多,那这个时候一定要先动手写,边写边想,呃很难,有的时候你一次性把这个问题全给他看透了,对不对啊啊,所以呢,有时候就边写边想,边想边写啊,类似于这样的方式啊,这张思路错了,那我们就换,OK,嗯,那这个数据是这样子的来看啊,叫11233441231123344123没有问题,对吧,跟我们的要的结果呢,完全没有出入啊行,那这个问题呢,咱们就搞定了。
我来说两句