00:00
行,那咱们就继继续再往下了,各位啊,继续继续往下,找出每个工作岗位的最高薪资。按照工作岗位分组。先分组吧,分完组之后是不是对你每组求最大值?好,那把这条语句拿过来能不能执行?可以。几个工种啊?几个工种?有重复的不是14个啊,你这个和这个是重复的呀,工作岗位一共是。一共是一个两个三个四个啊,四个五个,一共是五个工作岗位,所以上面的结果是不是五个记录,但尴尬了呀,这个3000是属于哪个工作岗位的最高薪资,这5000是属于哪个工作岗位的最高薪资,咱们是不是不知道,所以在这能不能加工作岗位啊,能不能可以拿过来放到这。
01:15
这五个工作岗位是不是每个工作岗位最高,对应的最高薪资是不是都有?对吧?好,各位就查出来了,好,这个语句大家有什么不理解的地方吗?根据工作岗位分组,分完组之后求每组的最大值,这个岗位最大值,这个岗位最大值,这个岗位最大值,这岗位最大值岗位最大值对吧?好,现在我想考察的一个问题是,请同学们告诉我这个语句能不能执行?由于按工作岗位分组是五组对吧?所以这个值恰好是五个对吗?前面是不是好是每个工作岗位是不是都有最大值也是正好是五个吧,正好这些数据是不是正好搭在一块,能查出来E内一共多少个14个记录对吧?是不是14条记录?
02:11
这条语句也就是说我问大家一个问题吧,我我说的再直接一些啊,E name字段有没有参加分组没有。只有job这个字段参加了分组,那你觉得这条思口语句它能不能执行?我现在就告诉你,在Oracle里边这条语句执行结束之后,马上就报错。但是买没事。虽然没事,但执行的结果毫无意义。四人不同。没有意义,史密斯的薪资是1300,都知道他是800,对不对?所以这个结果我问大家e name,他是,他是不是随机从那张表里边取了五条记录跟你后边这些东西是不是根本压根就对不上?所以记住了,记住了,各位啊,这语在Oracle里一定会出错,因为Oracle语法相当格,MY语法是松散的,Myle当中允许这条语句的执行,但这条语最终执行结果毫无意义。所以我们这里必须给大家一个结论,什么结论?当一条语句有的话,Select后边只能跟参加分组的字段以及分组函数,别的东西都不能跟。
03:29
这个结论很重要,各位啊,这结论很重要,就是当一条思后语句有什么group by的话,只允许你select后面出现谁出现参加分组的字段能写到这儿,以及分组函数你可以写到这,别的字段写到这。第一在MYS里边虽然执行通过了,但是结果毫无意义。在Oracle说明书里,语法严格执行的时候会报错语法错误。明白吗?这个事儿我要说清楚的啊,你不要说,哎,老师这个执行了。
04:01
这个语法没有错误啊,你好好看看这个数据,这个数据是没有任何意义的。对,以上我觉得这个放到这儿。注意啊,以上在买circle当中查询结果是有的,但是结果没有什么意义啊,在Oracle数据库当中会报错语法错误,各位啊,Oracle的语法规则比买circle干什么?而优化规则比。MYSQL语法规则严谨。记住一个规则,各位什么规则当当什么一条语句中有谁的话,Select后面只能跟什么分组函数和什么参与分组的什么字段,记住这个规则。
05:28
每个工作岗位的最高薪资。每个工作岗位的平均薪资。怎么写?Select工作岗位,每个工作岗位的平均薪资是不是按照工作岗位分组?所以这个工作岗位是不是一定可以写到select后边逗号叫平均工资是什么?Average salary是不是就是平均工资啊?好,那from group按照工作岗位分组,按工作岗位分组,求这个工作岗位的平均。
06:03
新志。平均薪资,各位啊,每一个工作岗位都有平均薪资。好,接下来多个字段能不能联合起来一块儿分组?大家现在看见的是grow后边只有几个字段一个,那我多个字段联合起来分组行不行呢?来一个题目上案例啊,注意,咱们看一个案例,找出每个部门不同工作岗位的最高薪资。找出每个部门不同工作岗位的最高薪资。
07:02
我把这个去掉。你读一下这个。找出不同工作岗位的最高薪资,是不是跟部门没关系?那这个咱们就是找出每个这个找出不同工作岗位的最高薪资,就是这样的最高薪资select max什么。是不是?纸。是不是按照工作岗位分组求最大值,不同工作岗位最高薪资是不是这样写啊,但是我现在不是这样,不是这个意思,我是找出的是不每个什么部门不同工作岗位的最高薪资。我们先看看数据啊。
08:29
我先把最原始的数据先拿出来,我的提议是什么?你分析一下,十部门,十部门,十部门这个是不是一个部门的20门,20门,20部门是不是这个是一个部门,30部门30分,是不是这些人都是一个部门?我说要找的是每个不门每个部门不同工作岗位的最高薪资。这个manager和这个manager。不能在同一组当中。
09:02
因为您这个manager是属于实部门的manager,而我这个manager是属于20部门的manager,所以这两条记录不能放到同一组里边。但是这两个数据是不是同一组?找出每个部门。不同工作岗位的最高薪资。这三个是不是同一组啊,诶不是啊,加上这个应该是四个。对吧,应该是这四个,各位看好啊,应该是1234这四个都是什么同一组,这个麦这个分析师啊,这个分析师,这个分析师和上面这个分析师是不是同一组啊,这个办事员和上边这个办事员他是一组。
10:05
但是这个manager和这个manager为什么不是一组部门不一样,我要找的是每个部门不同工,诶每个部门时部门不同工作岗位,这个岗位这个岗位,这岗位是不是三个岗位都不一样,所以这个是不是就是他的最高薪资。这个是不是这个的最高薪资,这个是不是他的最高薪资,那这1234这四个里边最高薪资是1600。我们是不是应该把这个30部门当中的salesman的一千六找出来?那这个时候我问大家一个问题,应该按照几个字段分组?两个字段联合分组吧。谁加谁?就是你把这俩字段看成几个字段,看成一个。
11:02
好,这是10MANAGER,这是20MANAGER,这样的话表示它俩是不是不一样啊,这个是30SALESMAN 30salesman 30salesman这几个是不是同一组啊?所以按照这个字段加上这个字段,两个字段是不是联合起来分组啊?懂什么意思吗?好,那这个语句怎么写,Select某某某不知道是谁啊,From谁E,然后group按照哪些字段分组,按照这个字段逗号加上这个两字联合分组,我问你分组的东西是不是可以放到后边sla后面能不能跟分组的东西根据它分组,所以材料后面是不是可以写它最高薪资是谁max谁S。这样是不是写出来了?这就写完了啊。这就是找出每个部门不同工作岗位的最高薪资,每个部门不同工作岗位最高薪资必须按照两个字段联合起来分组,两个字段联合起来分组,各位啊,来,我们把这条语句呢拿过来,来看一看是不是我们想要的这个结果。
12:07
好,我们来看看30部门的sales,现在是不是只有一条结果一千六啊。这个manager和这个manager为什么重了?记住这个记录和这个记录并没有重复,因为这个是十部门的manager,而我是20部门的manager,这是两个不同的部门,肯定不会被划分到同一组当中。因为我说的是每个部门不同工作岗的最高薪资嘛,是不是,所以大家要注意啊,这个分组并不是你想象的那么简单。你想象的分组好像后边只有几个字段一个,但有的时候我们这个分组可能是多个字段联合起来分组。多个字段联合起来分组,我觉得你就想象成多个字段是几个字段,一个,你就把这个多个字段看成是一个字段就行了。
13:00
你好好儿想想是不是这个道理。你想一想啊,你想一下这个。好了,这个是关于group,各位啊。
我来说两句