mysql group by详解

SELECT * FROM employee group by gender;

为什么只显示一条数据呢?按理说,应该是像excel一样,这个组后面跟着所有数据,没错就是这样,解释一下

 

 执行下面语句,得到左边结果

SELECT name FROM test

GROUP BY name

 id和number中有的单元格里面的内容是多个值的,只会显示一个。

当然name表格不止一个aa但是,由于是按name分组,所以select name是可以的。

 

知识点:
1、count(*),count(列名)都可以,区别在于,count(列名)是统计非NULL的行数

再举个例子

SELECT name,sex FROM tb_students_info 
     GROUP BY sex;

表里有很多男生女生,显然只返回了一条记录

那想要都显示怎么办?

关键字:group_concat()

GROUP BY 关键字可以和 GROUP_CONCAT() 函数一起使用。GROUP_CONCAT() 函数会把每个分组的字段值都显示出来。

SELECT sex, GROUP_CONCAT(name) FROM tb_students_info 
     GROUP BY sex;

 所以说GROUP BY 一般不单独使用。

那么对于单元格有多个数据的情况怎么办呢?除了都显示,我们还常用聚合函数,聚合函数就用来输入多个数据,输出一个数据的。聚合函数包括 COUNT(),SUM(),AVG(),MAX() 和 MIN()等。其中,COUNT() 用来统计每个组内记录的条数;SUM() 用来计算每个组内字段值的总和;AVG() 用来计算每个组内字段值的平均值;MAX() 用来查询每个组内字段的最大值;MIN() 用来查询每个组内字段的最小值。

多列分组

下面根据 tb_students_info 表中的 age 和 sex 字段进行分组查询。SQL 语句和运行结果如下:

SELECT age,sex,GROUP_CONCAT(name) FROM tb_students_info 
     GROUP BY age,sex;

上面实例在分组过程中,先按照 age 字段进行分组,当 age 字段值相等时,再把 age 字段值相等的记录按照 sex 字段进行分组。 也就是age,sex这俩一样的为一组

多个字段分组查询时,会先按照第一个字段进行分组。如果第一个字段中有相同的值,MySQL 才会按照第二个字段进行分组。如果第一个字段中的数据都是唯一的,那么 MySQL 将不再对第二个字段进行分组。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL中,使用GROUP BY子句可以根据指定的列对查询结果进行分组,并使用聚合函数对每个分组进行计数。 例如,可以使用COUNT()函数来计算每个分组中的记录数量。在引用中的查询语句中,使用了COUNT()函数来计算了不同类型的呼叫数量,包括总呼叫数量、呼入数量和呼出数量等等。 另外,在引用中的查询语句中,也使用了COUNT()函数来计算了不同情况下的呼叫数量,如有通话且呼入的数量、有通话但呼出的数量等等。 总结起来,使用GROUP BY和COUNT()函数可以实现对查询结果的分组计数,从而得到更加详细的统计信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mysql中count(), group by, order by使用详解](https://download.csdn.net/download/weixin_38622227/12827358)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [mysql group by count case when](https://blog.csdn.net/zsj777/article/details/80973825)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值