00:00
然后我们看最后一个需求,他说查询前20%时间的订单信息。时间的订单信息,那你要知道的问题,他要查询20%时间,你肯定按时间排个序吧,对吧,你肯定按时间排个序,这没有问题,然后他要前20%。五分之一来还有一个函数啊,最后一个函数。Until。它是把有序分区中的行分发到指定数组的列中,各个组有编号,然后从一开始。其实他就是把整个数据啊,分成了N个组,N个组,然后每个组有一个编号,123456啊这种呢,有一个编号是这个意思。然后他说对于每一行啊,对于每一行数据,然后NT要返回的是什么,此行所属总的编号,那你看一下啊,咱们现在这个数据。
01:06
在这他是按时间排好序的吧,假如说我分成了两组。分成两组一半吧,分成两组一半好,那这个组后面我假如说要写一个NT2,那这个返回的值是什么?这前面的这么多是几啊。这个是一,这个是二。是这个意思。而且是每一行都是一。每一行都理解。那我们来看一下啊,首先我们select新,然后加上一个什么。TT,我们分五个,因为他要20%是吧,要25%个,然后over。时间的对吧,时间的你起码要这个窗口里面要按时间干什么,排个序吧,按时间排个序,这是基本的要求,来看一下这过来这里就按时间排个序。
02:13
然后from这个business这张表。下,那大想一下最后的结果应该是什么?这是每一行数据,你看首先是心嘛,心是不是原始的那三个列都有啊,三个列呈现出来,然后后面你还查了一个什么。NT吧,而且这个函数的返回值,它说是什么?所在组的组号吧,哎,所在组的组号嘛,也就最后分成了五个组,然后每一个数据后面跟着它具体的组号,也就是前面是假如说三个一,然后中间三个二,然后下面三个三是吧,是这个意思。来看一下。12345吧,五是这样的,分成了五个组,这样因为我们只有14条数据是吧,分成五个组,所以它不够分,最后一个就会少,少一条数据,少一条数据。
03:11
但有了这个之后,我们现在要他要什么,他的结果?前20%。前20%,那这样。前20%其实就是什么。唯一的吧,那如果说我把这个数据改成这样来wre we。这个东西。你取个名字吧,取个别名是不是,要不然这个地方就不好用了是吧?哎,取个别名在这我们应该叫什么呢?叫。组号是吧,GD可以吧,啊,它一个组号,假如取一个别名的组号,然后我们要这个GD啊,等于一是吧,但是这种能不能成功呢?我们试一下吧。我们首先想到的是因为。
04:08
我们一看这个结果啊,我们现在要的数据,根据他的一个需求求的数据,其实就这三条是吧,也就是说最终这个唯一的。唯一的好,错了。他说其实不可能的,一个列了一个表,那其实什么意思呢?就是VV这个词句,你想想看,它也是一个在计算吧。那你可以干什么,做一个子查询是不是。做一个子查询,懂我的意思吧,这个东西。你不能够直接算,就跟。Heavy那个一样吧,但我们把这个改成heavy呢啊,那我们把一个X啊,这个是不成功的,对吧,它有问题的,因为是这样的,你不要子句里边不能用什么。这种在计算的函数吧,就像上吗。
05:00
Average啊,这种函数都不能放到V句里面吗?是吧,它是这个意思是跟这个一样,那我们知道用子查询可以,那我们用heavy呢,我们之前讲了V跟heavy的区别是吧。用heavy能不能乘呢?哎,我们来测一下啊,测一下来走一下。他也不行,他说要还啊,必须跟着规范组函数,那我们只能说什么。加一个紫糖菌是吧,Select。星星,然后from from。From的表是不是就这么多,这有问题吗?你想下这个,我们查出来是什么,是这个吧,对吧?哎,From从这张表里边做一个子查询,然后最后你加上一个。
06:01
V,然后GD是吧,我们已经取了这个GD了是吧?GID等于一啊,通过这种方式看能不能查询把这个隔开啊。每条语句隔开来。走,不知道这里面用两个心,不知道什么啥。不行是吧,不行,就是说你得写具体字段来拿一下这个。上面学校要写具体字段,看到了。来把这个拿出来做个对比啊,就是两个心它是不认识的啊,这个地方你要写具体字段,其他的都没动嘛,只不过他这个别名叫说的,我们叫JD而已,其他的都一样吗。就是用两个星啊,他他他不让他不让用不让用来我把这个拿一下是这个是吧。走一下,就是说你在做子查询的时候,而且在公司当中开发的时候,你肯定不会用心吧,一个心都不会用是吧。
07:08
他不让你用两个心而已,看他那个语法,就是除了这个心不一样,其他都一样吗?还有其实我们这个丢了是吧。表的一个临时表的一个就是子查询表名丢了是吧,这个东西那个加上,然后把心变化一下就OK,看一下它这个结果,那这个是不是就刚才我们所讲的那个最终的唯一的那部分啊。啊,唯一的那部分数据就是前20%的一个订单,你通过这个NT它是可以的,它可以返回不同的组,而且你要知道NT2这个函数返回值是什么吗?返回值就是这个数据所在的组啊,所在哪个组啊,它返回的就是组的编号。也比较简单。
我来说两句