00:00
啊呃,刚才呢,我们都是在包括函数里边填一些东西吧,最重要的呢,是这个内容,那我们看一下啊,还有一些啊,就是涉及到其他函数了啊,其他函数了,第一个叫卡通道。当前行啊,还有往前行,往后安好起点终点。啊,起点终点这个都是在这个里面用的。都是在这个里面用的啊,等会我们看一下,那我们继续看需求啊,还有这两个东西。这个东西呢,是在O函数外面用的啊,外面用的你要给它分开啊,这几个呢叫当前行,你看啊,我们说了窗口函数O里面是不是限定这个数据的。数据集的多少啊,那你看啊,这个是当前行,这个是往前多少行,往后多少行,什么从起点,从往后终点,是不是划分整个数据集的,对吧?它这个用法也比较简单,我们看一下这个地方。
01:02
来,这里边就有这种东西。帕迪曼,其实你可以不写他啊,不写他在这,Rose从这开始写。其实这个用的比较少,用的比较少,因为更多的是我们刚才说这个连用的用的最多,所以呢,这个我们来看一下啊,这个地方呢,是Rose来看一下。Way and,这是关键字啊,我们把它标红一下。诶,Rose。然后比特,然后按。好,来体会一下这个意思。Rose是不行,而且是多行吧,这个多行怎么限定呢?七点到。当前当前房啊,也是限定当前这个数据集的什么大小的啊,就做这个事的,其实这一块刚才我们所说的这种。这个东西呢,比较少用啊,相对来说比较少用,比较少用,后面呢,我们来说啊,然后我们看这两个。
02:07
哎,那有同学说前面不有吗?往前横行往后吗?这怎么又往前横行往后啊,注意。这个就很有区别了吧,对吧,好,那假如说我这个数据现在是五行。我对于这种数据集来说,它是不是开窗可能会开窗啊,我如果说用往前N行,往前两行。到当前吗?指的什么意思?是不是这三个呀,往前两行嘛,对吧,如果说我用的是那个。往前第几行呢?指的是哪一条数据往前第。二条是不是这条啊,指向一条吧,啊,这个是区别。啊,这个有区别,来看一下怎么用的啊,一个是往前DN行,一个是往后D行来看这个需求。
03:00
啊,接下来是不是应该是第四个需求了呀。就是我要查看一下这个顾客上一次购买时间。对吧,来看啊,现在的数据集在这,我现在呢,让你不看这个,不看他这个是不是我们按照用户。按照这个时间排序了,我现在这个后面准备放一条什么数据。上一次购买时间。也就是说这个一号1月5号。我要放一个什么一号一八号呢,放一个一号。好,没有没有就给那或者给他一个默认值。好,这个时候呢,要用到我们这个。要用到那函数好,那我们来写一下这个内容好还是一样的select。Name的话,然后呢,奥迪我给他保留着可以吧,然后这个cos呢,我也写上。
04:06
我也写上好,接下来最后一个字段,是不是我们要前一行的数据啊?对吧,前一行的数据就要用到我们刚才的哪个函数了。那而且那你看用法前面写一个column,你要没列的,我们是不是要上一次购买时间啊,不是上一次购买的金额啊,哎,这个有区别,如果金额里边要写什么。Cost,如果上一次购买时间你写的就是这个N呢?往前一行,我们写个一,好来写一下。叫leg。这个是的,然后还有一个。一。注意这块呢,Leg跟力的这个函数,我既然放在这儿,也就是说它后面必须要加一个。Over,那over里面怎么写?
05:01
我们是对于同一个人,如果说我直接这样写了。他应该数据是什么样子。就是原始数据看。也就是说我按照人事数据不动,这个1月2号写的是1月1号,这个2月3号写的是1月2号,这个1月4号写的是2月3号吧,我不能这样,我是不是要针对于这个人。按照时间排序对吧,那是不是应该把它干什么。给他拿进来,哎,给他拿进来,然后来写一下。From。这是什么啊?这就是leg函数的一个用法,来看好把它走一下。走。啊,Like那列的同理,就是把下一行拿到当前好了,把下一行的数据拿到当前,它后面必须要跟一个欧函数。啊,不要跟一个,最好跟一个O函数,因为这样我们可以对它不同的分区以及排序嘛,对吧?啊,因为你这个时候用group by还是用不了吧,因为你要跟原始数据要做关联嘛,说用不了,来看一下这个数据。
06:08
是不是按照这个人全部在一块啊,然后按照时间排序的,这没问题吧,来看这1月5号是不是1月1号,1月8号是1月5号上一条的时间嘛,那这个有闹是不是不好看啊。对吧?哎,这个时候呢,其实它可以传三个参数,最后一个参数可以传一个默认值,假如说因为对于lab函数来说,第一条数据前面可能有数据吗。不可能吧,但一定是到对于低角数据来说,对吧,我们可以给他一个假如说我们都给一个什么。对吧,啊,给一个开始时间,随便你随便给个时间吧,给个默认值,因为方便后续处理是吧,要不然你是一个字符串,然后出现一个,那这是不是不好处理啊,后续来我们看一下,把这个做一下啊。啊,这个是不是默认值,如果说它没有前一行数据的时候,那就给它附一个什么默认值是这个意思啊。
07:19
看这里面呢,有五个人,那理论上默认值应该有几个?啊,五个人肯定五个嘛,怎么四个五个人吧,四个人要四个人,四个人就四个,四个人就四个对吧,这个因为每一个人都有一个最开始的那个。对吧,啊默认值啊,也就是说它在第一条数据的时候才会去生效的啊,其他九值它不代替的,就类似于我们之前学的那个什么NV一样的。对吧,NV它为nu的时候才用第二个代替的。默认值是为为no的时候才会代替,对吧,当你是第一条数据,你没有前面这个值的时候啊,你要代替同样的道理,那我要看下一次购买时间呢,Select哎,我都不用改了,直接把这个拿过来。
08:12
把这个leg改成led,立立是往下一行,同样的,如果说没有这个值呢,我下一行给它什么?9999。给他一个。咱们这辈子活不到的一个时间,对吧?啊,因为没有下一次,相当于OK吧,啊,这是下一行啊,同样的这个下一行,这个9999将来也会出现解散四次吧,因为每一个人有一个结尾的时间,对吧?啊,也就最后一条,他没有下一条了啊,所以呢,给这个值啊,给这个值。把它跑一下,跑完之后呢,我们可以去下课来看一下这里边第一条数据,1月1号他是不是把1月5号放在这了,对吧,那1月5号把1月8号放在这一行了吧?啊放在这一行了,那这个你想想看,这两个函数我们讲有什么作用呢。
09:11
跨行做操作的时候。我现在问你一个人,这个人他想购买,两次购买相差时间。在五天内的,你给我找出来。能听懂对吧,我要算这个人购买的一个密集度啊。它隔多长时间,那正常情况下我们想呢,五天你是不是应该把上面一行,或者把下面一行减上面一行小于等于五。跨行棱角。你有学过东西跨行解吗?就是说你你现在假如说没有这个函数,你能把1月5号减1月1号这个东西能写出来吗。写不了,但是现在你有了力跟let函数能解吗?我把它变成一行,我同一行的数据,我是不能解啊,对吧?啊,这个也是有生长环境当中有意义的。
10:10
啊有益的,OK,那讲到这块为止的时候,呃,大家那个蚂蚁森林的那个题可以做。啊,蚂蚁森林的题是可以做啊,但是能不能做的出来,这是一个问题,对吧,说是基础知识绝对够了啊,绝对够了。
我来说两句