00:00
好,接下来我们看一下这个分子,其实这有这个格BY对吧,BY这个函数,一个组函数,它要跟这个聚合函数连起来在一块用啊,而且你查询字段里边如果没有用聚合函数。那就必须要放到哪啊工里边吧,是不是啊,好,那看一下他要查什么,查说查每个部门的一个平均工资,是每个部门的平均工资了,刚才是所有人的平均工资了,那select,呃,Avg,然后是cell,然后我们给它取个名字avg cell,然后是from,然后AP这张表,P这表,然后不要这个没有不要了,不用有什么过滤了,拜,Go,它是按部门来的吧,那就是第PT number了,第p number走一下。
01:10
那这个用MR写还是好写的吧,是吧,你K的位置放这个部门编号,然后具体的Y6,因为它查询的就这一个内容。那你就放cell,然后到了reduce阶段,是不是取出来一个搞一个那个什么抗的计数啊,计数之后把它累加,累加之后除以数,然后最终写出去就OK了呀,对吧,这三个部门的编号,我们应该刚才把那个部门编号放进去是吧?部门编号放进去了啊,这是三个部门的一个平均薪水啊,这种购入费,然后接下来还有他说计算每个部门当中每个岗位的一个最高薪水。每个岗位的一个最高薪水,那其实就是在刚才的基础上加了一个什么,那我们把这个他说每个部门像de。
02:04
Number我们加进去,然后还有一个叫我吧啊,它的一个岗位,OK,加进去,到时候好看一点是吧,然后这个地方就是grow by里边啊grow by里面我们所说的这只要你涉及到查询字段,它不带什么。聚合函数的话,那你就要放到里边了,里边了group,然后先是有部门嘛,他说每个部门叫不同岗位的平均工资吧,那就是部门的钱是吧,第pd number,然后是叫叫走一下。那像这种怎么做,这个需MR怎么写呢?主要想K吧,你就Y6还是一样吗?是不是Y6还是一样的,这个K就是一个自定义的K了吧,就是哎,首先是第1p number,然后是这个吧,是自定义的一个Java b对吧,Java b对象,然后那个要写它的一个比较方法,然后先按部门根号比,然后再按交薄比了啊这要这要做到,这是这个需求也比较简单,就是两个两个组嘛,分两个组。
03:33
好,那我们要求这个每个部门,刚才我们看到了他的每个部门的薪水油耗率低,我现在要查部门那个平均薪水大于有有我看一下啊,大于2000的,那怎么查呢。大于2000的,那首先还是这样,我既然要查部门的一个平均薪水的话,Select DEP number这个东西有啊,然后还有一个avg,然后salary,这个要有的,然后我们取个名字吧,IG Excel,然后来自于哪张表啊,你要告诉吧,好,Fromp这张表接下来怎么写呢?BY还要有啊,这个是一样的,GR up go by是这个d p number dp number这样正常的求出来是所有的部门都会出来啊,但是现在我们要求的是平均薪水啊,大于对,要用到heavy嘛,那这个时候will不行吧,Will它不能这种组函数求的。
04:53
结果它不能放到will里面吗?哎,所以要用heavy heavy直接用别名是可以的吧,用别名heavy这个大于2000的,那此时我们查出来数据应该就是两条吧,两条就是最后一个部门,三号部门应该就没了是吧,他就1000多走一下。
05:13
那就其实最终输出的时候做了一个限定是吧,做了一个判断,在你context点出这个方法之前,你有一个判断嘛,判断最终的个结果,平均薪水是否大于2000,如果说大于2000的话,你在执行那个写出,如果不大于2000的话,直接re return吧,直接return,那这样就是一号,就十号部门跟20号部门吧,30号部门就被关滤掉了,我个这主要就是heavyway,其实就是heavyway和V的一个区别,这两个不同,一个里边可以跟着一个组函数计算结果,一个是不能的。一个人不能的,如果你要想非得想用VI做这个需求的话,你要怎么办啊?我现在规定不准用happy,必须用well,那怎么做?再签一个是吧,做一个把这个当成子查询是吧,子查询就可以了。
06:09
啊,这是我们所讲的这个go和heavy啊,你要主要掌掌握它的一个不同点,不同点就是分组函数这块,分组函数一个可以一个后面不可以分组函数的,然后这就是具体的案例,具体的案例刚才我们也说过了。
我来说两句