00:00
来,咱们接着来啊。我们得接着看啊,最起码今天下午呢,我们得把这个分组查询讲完啊,也是连接查询之前的东西我们得说完。那现在呢,就是我们说到这个分组函数这块的是吧。分组函数这块呢,一共就五个函数,各位大家把这五个函数给它记住就行了。啊,但是呢,我们这五个函数,我们刚才说了,它是自动什么忽略,那你不需要呢,在你的外条件当中呢,再加这个过滤条件,尤其大家看到呢,他对这个补助啊,津贴这块呢,进行什么求和的时候呢,它有一个。有一个结果的。啊,这个字段当中啊,它本身是有nu的。因为我们之前说过,有nu参加的什么数学运算,最后的结果必然,为什么,那那这个结果它不为nu,这说明它没有这个nu参与运算,所以说呢,我们这个sum函数从这里看出它是忽略nu,你看上面这个count,它有没有忽略none啊,也忽略了。
01:16
对吧,他也忽略了。好,那么这个分组函数它还有什么需要注意的地方呢?对吧,他第一个注意的地方刚才说过了,是这个自动忽略纳。好,那我们来看一下啊,呃,看一个题目。比如说找出。工资高于。
02:00
平均工资的员工。找出工资高于平均工资的员工。平均工资。是不是这样啊?这样的话就是。整个公司的员工的平均工资嘛。我们要找出的是。高于平均工资的员工,就是这个员工的收入啊,他比这个平均工资高。这是平均工资,找出比平均工资高的,那我尝试写了一写内salary from ERP where,条件是salary大于avg salary。
03:06
那大家思考一下,这样写行不行?看着没啥问题呀。薪资大于平均薪资啊。这不薪资大于平均薪资吗?没问题啊,诶一执行就有问题。而且是不能不是说查不出结果是语法出错。他这个提示的错误信息编号为1111编号。后边还给了一大堆翻译。
04:00
说无效的使用了group函数。无效的使用了分组函数。那你思考一个问题,这是为什么?思考以上。的错误信息,无效的使用了什么分组函数,哎,为什么?原因非常简单非常简单啊,分组函数不可直接出现在where子句当中。原因是SQL语句当中有一个语法规则,什么规则?
05:05
分组函数不可直接使用在什么?Where子句当中。为啥?是不是这里我们先给他画个问号,我们把这个讲完之后,我们回头给大家解释这个问题。行吧,哎。这个咱们得解释清楚各位啊,就是说分组函数这块一共5COM的计数,STEM求和,平均值,最大值,最小值,每一个看起来都特别的简单,一个是计数的,一个是求和的,平均值最大值值,那这一块呢,我们说的第一个知识点就是它自动忽略,那自动忽略那这个事儿您一定要把它背会,因为太重要了。很多笔试题当中,他会考察你这个,让你写一条词后语句,他故意给你一些空。
06:06
然后呢,你自己在这加一个where条件,他就不给你分了。明白吗?你写一个思考语句,后边加上Y条件,虽然能查询出结果,但是您这个知识点没掌握,它主要考察的就是你这个sum函数,包括average,包括max,包括他们都是自动把none排除在外的,您根本就没有必要在后边加置条件,再次过滤,没必要。它自动忽略,还有一点就是刚刚我给大家写的这个找出工资高于平均工资的员工,这个平均工资我已经找出来了,我找要比这个平均工资高了,结果发现我写了这么一个语句,工资比平均工资高的,看着表面没意思,没有任何问题,但是我执行之后就报这个错,而且这个错叫无效的使用了分组函数,无效使用,我现在只能告诉你,在这个SQL语句方面,它有个硬性的规定,语法规则。
07:05
规定什么呀,在where后面不能用,它不能用谁,不止是这个啊,这五个函数你都不能用。我说这一点您先记住,等我讲完后边的这个group by之后,我们再来看这个东西,我就可以给你解释了。好,这个知识点我们先放过去,好吧,放过去啊,但是呢,我们还是需要讲一些新的东西啊,比如说count星和具体的某个字段,它们有什么区别。看啊,SELECT14条记录,Select是四条记录,那你说count具体的某个字段和count星的区别是啥?
08:07
Count星就意味着跟字段有关系吗?没有关系,Count星统计的一定是总记录条数。总记录条数count具体的某个字段指的是你这个字段当中不为空的元素总数。就是count星和字段有关系吗?还没关系了,就是您查出来这一堆,这一堆有多少条记录,Count星统计的是总记录条数,而count具体的某个字段是说您这个字段当中不为空的元素总数。记住吗?那重点这都是啊,重点来看的形式,什么就是和什么,不是统计某个字段中数据的什么个数,而是统计总记录条数。
09:13
就是和某个字段有关系吗?无关count具体的某个字段。啊,表示统计什么comm字段中不为的元素啊,或者是数据总数。总数量,各位行了,这个抗行和count具体的某个字段,我在这里也给大家演示了,而且这老是出现一些面试题,有的面试官直接上来就问你,Count星和count某个字段,你觉得有啥区别?时间久了你肯定忘啊,肯定会忘,因为你当下这块我讲的时候啊,你呀觉得有点印象啊,杜老师说了,这几个函数自动就把none怎么着忽略在外了啊,Count具体某个字段的话,统计的就是这个字段中不为none的元素总数,Count新的就是总就条数,但过一段时间就可有可能忘了,所以这就需要您干什么呀,每天早晨来的时候,对最近所学的三天内容进行早晨的15分钟回顾,这个回顾还是很重要的,你回顾三天,你就可以保证这个内容。
10:23
在整个学习阶段,你一共回顾了三遍,这样的话,这个抗性、抗拒某个字段在你眼前LOW3遍,你将来肯定不会忘。肯定不会忘啊,所以说你学习要有规律,不能今天就就回顾一下昨天的。等明天学完之后呢,就回顾一下今天的,那你这个。很容易忘了来,那么接下来分组函数也能组合起来用。比如这样写,Some salary average salary salary mean salary from ENG,它可以把这几个函数组合起来用,也是可以的。
11:16
好各位,单行处理函数跟分组,呃,这个和分组函数和或者叫多行处理函数的区别是什么?这个单行处理函数和我们上面所讲的这种分组函数,我们不是说了吗?他又叫多行处理函数吗?它的区别你要会说啊,单行处理函数就是一行一行处理,多行处理函数就是多行,最后得出一个结果。是吧,好,那这块咱们就说完了,各位,但是这有个。一问他为啥这个函数不能用在。Where后边。啊。
我来说两句