温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
分组查询的里边呀,这个筛选还是比较重要的哈,我们写这啊,这是第一我们分组查询,分组查询中的筛选条件,我们可以分为两类,那么一类呢,我们叫做分组前筛选,还有一类呢,我们叫做分组后筛选。那么我们分组前和分组后筛选,他们针对的,或者说他筛选的这个数据源是不一样的,数据源不一样,意思是说筛选嘛,就好像我拿一个筛子把东西放进去,然后我们去筛到我们想要的数据。那么你的筛子里面放的东西,最初放的东西是不一样的,那分组前筛选它的数据源的话,其实就是我们的原始表了。什么叫原始表?就是像刚才我们一直说到的像employees表呀。当然主要是用lo表,刚才的案例中,或者说就是我们库里边,它是不是真实存在的表呀,啊,我们称为原始表哈。
01:05
那分组后的筛选,它的数据源不是元素表了,而是分组后的结果集。那么因为它的数据源不一样,所以它所放的位置也是不一样的,分组前的筛选,它的位置是放在我们group by子句的前面还是后面词句的前面吧的前面,而我们的非组后筛选,它放的位置是group by子句的后面啊,而且他们使用的关键字也不一样啊,连接的关键字这个用到的是where,而我们分组后筛选用到的是having。好吧,哎,这是跟大家去总结了一下哈,最后呢,说一个比较就是呃,经常用的啊,经常用的就是一般来讲我们的分组函数,你比方说咱们前咱们这个案例中涉及到的什么,最低工资大于谁谁谁。
02:03
或者最高工资大于谁谁谁,或者说个数大于谁谁谁小于谁谁谁对吧?那分组函数做条件啊,那么肯定是放在我们的排位词句中,哎,这个一定要注意了啊。所以说呃,这是给大家说的一个大招,那么以后的话呢,大家一涉及到分组函数做条件,那其实的话你不用多想,它绝对是放在having子句,也就是它属于非组后筛选了。为什么呢?你的这个分组函数,那肯定它在原始表里边,是不是没有啊,这是一点啊。还有一点需要大家去注意的就是第二点,那么我们假如说你像我们分组后的字段就是个和半的字段,那么他如果说做筛选的话,做条件的话。其实放在where和having后面是不是都行啊,那么建议大家放哪呢?放在前面,所以说这一块呢,给大家写上能用分组前筛选的,那么就优先考虑使用,考虑使用分组前筛选啊,这样的话是考虑到了一个性能的问题哈,哎,这个要注意。
我来说两句