00:00
最后一个需求呢,他要查的是前20%的订单信息时间。就是说按时间排序,假如说我有十条数据按时间排序,我我只要什么前两条。能懂这意思吧,啊,假如说你是20条数据,我就要前四条,按照时间排序要前四条,这就前百分之多少时间的,那大想想这个应该怎么做。这个地方呢,我们就要用到另外一个函数了,NT是吧?然后呢,把有序窗口的行分发到指定的组当中,每个组有自己的编号,然后呢,这个是发到多少个组里边。
01:02
那我们要填20%,我们就可以分几个组啊,分五个是不是就够了啊,它会根据时间帮我分组,好,那我们先把这个东西来算一下,我们先去做什么做分组,谁来的啊?然后呢,我们写一个name是all the对吧?嗯,然后呢是那个cost,然后呢,我们去分组,先考虑它分组叫NT是吧,括号分五个组吧,后面呢是开窗函数啊呃,然后这里边我们就直接order。好对吧,整个的呢,我们按照这个进行一个分五个组。啊,这个呢,我取个别名叫group group ID啊,就分的组的名字啊,From这个business这张表啊,这个这个东西啊,这个函数只包括前面的lead和leg,呃,必须后面跟着O函数,就lead跟leg你加,哎,我不想开窗,我直接就想用一下行不行不行,用不了啊,就包括这个函数也一样啊,它是窗口函数里边了啊,还有那个所谓的刚才我们写在这的东西啊,对吧,像这个东西你单独用都用不了啊,必须跟这个O有关系啊好,那我们先看这个分组啊。
02:31
如果说能按照时间给我们分五个组出来,我们要求前20%的,我只要组ID等于什么?一的不就好了吗?对吧,它分五个组,它分123455个组啊,我只要组ID等于一的就好了,就是前20%时间的好来看一下14条数据分五个组也不够分是不是对吧?所以我们看到最后一个组里边只有两条数据,前面都是什么三条对吧?而且呢,按照时间顺序的吧,对吧,实际上我们要的是不是就这三条数据,那已经到这一步了,这三条数据是不是简单呀,对吧?这个表呢,我可以把它叫做一个第一表啊,然后呢,前20%的一个订单啊,然后呢,叫name all data,然后加上一个cost,然后from第一表,对吧。
03:33
Will,这个group group ID怎么样,等于一对吧,这个T1呢,前面加一个括号啊,你个的的哎,把这个一查,这个就是我们要的前三条记一下一月二,1月1号,1月2号,1月4号对吧。一月的1243条数据,我们看一下这个结果,其实第二层就嵌套了一个V,肯定不会有什么大的变化,对吧?V那个字段呢,等于一的就好了啊,可以求前百分之多少的这个数据集啊,这个也很方便啊,可以开窗,但是这些东西呢,只能跟窗口连用啊,就单独用用不了啊,单独用不了啊,属于窗口里边的是不是一个一号的二号的四号的三角数据,对吧?啊就给我们查出来了啊,这分组你要求前百分之多少,你要想好分几个组,然后去取对吧,而且呢,甚至这样我们还能取,说我从40%~60%的数据都能取得到。
04:36
对吧,我只要中间的什么20%是不是也能取啊,对吧,就等于三就好了呗,分五个组,中间的20%是不是等于三呀,对吧,这个就比较灵活了啊,就是嵌套一层都能做这个事情啊,这是最后的NT啊,但是其实这个NTL这个东西啊,用到的不多啊,用的不多,这种场景用的少一点,更多的啊,在窗口里边更多的写的是part by凹,或者说前面lead leg这个用的比较多,其实像这个搞得好像挺花里胡哨的是吧?呃,各种非常灵活,但是都不太管用啊,因为我们一般做累加呀,会会多一些啊,做累加会多一些,那我们就直接out by就可以了,对吧,然后呢,无非就加一个分区,就是爬BY,限定一下窗口的最大活动范围啊,就用的更多一些,这些东西呢,用的比较少,你下去玩一玩,那重点要去练的over,你要知道清楚,因为这些东西是不是都需要跟着over,对吧。
05:37
然后立跟那多去测一测对吧,嗯呢,改一改啊,多玩一把,自己写一写,敲一敲,呃,这个东西呢,练一下就够了,这个东西练一下就够了啊,用的都不多,包括我们后面的项目,以及像在大家工作的时候用的都相对来说比较少一点,但是这个是属于我们窗口函数里边的,也就是说它提到这块对吧,这个叫什么叫window functions对吧?啊,属于它里边的啊,First value last value,那你自己都可以试一下,这个一看名字就知道窗口里边取。
06:08
第一条窗口里边取最后一条对吧,这是特有的窗口函数,只能跟着后面跟着over去用的啊,这个是这个意思啊。
我来说两句