00:00
好,那么我们继续呢,来看一下group by子句后面还可以支持哪些东西,那刚才呢,提到的这些案例里边呢,Group by子句,呃,它放的呢,都是一些单个的字段,那实际上它呢,也可以放一些其他的,比如说我们看一下,呃,它这个里边呢,也可以支持我们按表达式,表达式进行一个分组啊,表达式或者说函数哈,或者说函数啊,那我这样去写吧,按表达式或者说函数分组,咱们就放一起了,比方说我们做一个案例哈,案例,那么假如说呢,我希望说按一下我们的这个叫做员工姓名的长度分组啊,那么查询啊,每一组的员工个数啊啊啊,那么最终呢,我可以再做一个筛选,筛选一下我们的这个员工个数啊,大于五的有哪些有哪些哈,行,我们做一下,首先第一步的话呢,我们先进行一个分组去,那就是。
01:00
是第一,第一的话,我是相相当于先去查询我们每个呃,每个长度的,也就是我们姓名的这个长度哈,每个长度的我们的这样的一个员工个数,然后接下来第二步怎么样呢?我再去添加筛选条件,那那么我们先看这呃每个长度的员工个数,那应该是count星号吧,然后再去from我们的员工表,那长度的话应该是group by啊刚才说到呃,之前我们说到的是不是有一个lengths函数啊啊,那这呢就写lengths,后面我们再去加last name啊,它也支持这样去放,那当然你这放的是ls last name,那我这个地方其实也可以啊,是不是去查询出来了Les last name,我们可以给它起个边名了哈,因为都比较长,比方说叫len,哎,我们的这个name。
02:00
嗯,好了,那么现在的话呢,我们再去执行看一下效果出来了吧,哎,这个是可以的哈,哎,那么现在呢,我们再去筛选看哪一组的这个员工个数大于五,那其实的话能看出来在这个结果集上能看出来是不是就这些呀。啊,所以说这个筛选条件,那它针对的这个数据源应该也是我们的分组后的结果集了,那需要在和BY子句的后面加having having,我们的LAS啊,然后这儿呢,是last name要干嘛呢,大于五。啊,不对,不是类是谁呢?Count是吧,Count,我们的星号count星号是不是大于五呀?好吧,那么现在我们再去执行是不是就出来了。好吧,这是关于我们这个group,就后面其实它也可以支持我们这种函数啊,或者说表达式其实也是支持的,但是不太常用啊,一般我们放的是这个字段,当然这儿呢,我突发奇想,呃,你看我们这个地方的话呢,涉及到了这个比较长的这个东西了。
03:06
我们支不支持别名啊?啊,我们可以试一下哈,那比方说你我们先看一下这个结果集是多少哈,一共是六行,我这儿呢,是不是用到了一个别名啊,啊,这我也给给给你给我们起一个别名,比方说C。好,那这个地方我要是改成别名应该是谁,Len name对不对,Heavy后面我要是用上别名应该是C,我们看一下对不对哈。啊,大家看一下一样不一样啊效果。Count星号。啊,Having c这没写完,这应该是大于五对吧?好,我们再去直写,哎,一样不一样,是不是还是六行啊,效果是一样的,呃,这说明group半子居后面和having子居后面是不是都支持我们这个联名别名啊啊,这个是支持的啊。那所以说假如说你这个比较长的话,我们也可以用别名来代替啊,放在group或者having后面,但是where后面是不支持的,这个要提一下。
04:05
啊,但是不常用,为什么呢?因为像Oracle啊这些的语言啊,它实际上是不支持伴和having后面方便面,所以不太通用,咱MY是支持的啊。那行,那这个说到这儿。
我来说两句