mysql数据库教程group by 【分组查询】语法代码
将查询的结果分组,分组查询目的在于统计数据。
- -- 查询男生和女生的各自语文平均分
- mysql> select stusex,avg(ch) '平均分' from stu group by stusex;
- +--------+---------+
- | stusex | 平均分 |
- +--------+---------+
- | 女 | 72.2500 |
- | 男 | 77.0000 |
- +--------+---------+
- 2 rows in set (0.00 sec)
- -- 查询男生和女生各自多少人
- mysql> select stusex,count(*) 人数 from stu group by stusex;
- +--------+------+
- | stusex | 人数 |
- +--------+------+
- | 女 | 4 |
- | 男 | 5 |
- +--------+------+
- 2 rows in set (0.00 sec)
- -- 查询每个地区多少人
- mysql> select stuaddress,count(*) from stu group by stuaddress;
- +------------+----------+
- | stuaddress | count(*) |
- +------------+----------+
- | 上海 | 1 |
- | 北京 | 3 |
- | 天津 | 2 |
- | 河北 | 2 |
- | 河南 | 1 |
- +------------+----------+
- 5 rows in set (0.00 sec)
- -- 每个地区的数学平均分
- mysql> select stuaddress,avg(math) from stu group by stuaddress;
- +------------+-----------+
- | stuaddress | avg(math) |
- +------------+-----------+
- | 上海 | 76.0000 |
- | 北京 | 74.5000 |
- | 天津 | 83.0000 |
- | 河北 | 72.0000 |
- | 河南 | 56.0000 |
- +------------+-----------+
- 5 rows in set (0.00 sec)
复制代码 查询字段是普通字段,只取第一个值
mysql数据库教程group by 【分组查询】语法代码
通过group_concat()函数将同一组的值连接起来显示
- mysql> select group_concat(stuname),stusex,avg(math) from stu group by stusex;
- +-------------------------------------+--------+-----------+
- | group_concat(stuname) | stusex | avg(math) |
- +-------------------------------------+--------+-----------+
- | 李斯文,诸葛丽丽,梅超风,Tabm | 女 | 70.5000 |
- | 张秋丽,李文才,欧阳俊雄,争青小子,Tom | 男 | 77.2500 |
- +-------------------------------------+--------+-----------+
- 2 rows in set (0.00 sec)
复制代码 多列分组
- mysql> select stuaddress,stusex,avg(math) from stu group by stuaddress,stusex;
- +------------+--------+-----------+
- | stuaddress | stusex | avg(math) |
- +------------+--------+-----------+
- | 上海 | 男 | 76.0000 |
- | 北京 | 女 | 82.0000 |
- | 北京 | 男 | 67.0000 |
- | 天津 | 男 | 83.0000 |
- | 河北 | 女 | 72.0000 |
- | 河南 | 女 | 56.0000 |
- +------------+--------+-----------+
- 6 rows in set (0.00 sec)
复制代码小结: 1、如果是分组查询,查询字段是分组字段和聚合函数。
2、查询字段是普通字段,只取第一个值
3、group_concat()将同一组的数据连接起来
|