【黄啊码】MySQL入门—5、数据库小技巧:单个列group by就会,多个列呢?

2022-09-08 12:23:04 浏览数 (1)

大家好!我是黄啊码,上节课留的作业大家都做了吗?没做的话回去做完再来听课。

好了,先来解答上节课留下的问题:

我们在数据库表中新增一列user_height表示身高,然后拿到所有数据:

我们如果单单用user_age来分组看看结果如何:

你:这也太简单了吧,我来:

select * from user_info group by user_age; 

你:这。。。好像跟我想象的结果不同;

黄啊码:好玩吗?惊不惊喜,意不意外?

咱们不直接说答案,就讲讲为啥这样,如果你英语水平很一般,那咱们直接借助翻译工具:

这翻译水平,墙都不得不扶。

我来总结一下吧:简而言之就是这里边user_id不是聚合列,在功能上也不是groug by所需要的字段。

你:user_id不行?那user_name呢?

select user_name from user_info group by user_age;

黄啊码:user_name也不行,就算天王老子来了也不行。

你:那user_age总行了吧?

黄啊码:我发觉大聪明最近有长进了

select user_age from user_info group by user_age;

确实是可以的,这里就相当于把user_age当成聚合列来使用。

你:哈哈哈,终于让我做对了一次

黄啊码:是吗?那昨天的作业该咋做

你:您请,我怕说错挨揍

如果使用多个字段进行分组的话,很简单,直接在group by后边加上另外的字段即可。

你:这么简单,早知道。。。

黄啊码:啪,哪有那么多早知道。

select user_age from user_info group by user_age,user_height;

黄啊码:如果想要把user_height这个字段也查出来呢?该咋办?

你:简单,那就在from前边把user_height加上不就行了。

黄啊码:啪,没白教你,打你一下当做赏你了。

你:【下次再也不出风头了】

select user_age,user_height from user_info group by user_age,user_height;

好了,多个列进行group by分组的就讲到这里。周末了,就不消耗大家的娱乐时间了,我们下周再见,别忘了一键三连哦,当做给黄啊码深夜码字的鼓励吧,谢啦。

我是黄啊码,码字的码,退。。。退。。。退。。。朝! 

0 人点赞