深圳市金黑网络技术有限公司始终坚持以用户需求为导向,提供安全、稳定、高效的产品和服务!
签到 · 搜索导航 · 服务热线 · 微信/手机:17817817816

深圳网站建设

查看: 450|回复: 0

mysql数据库教程group by 【分组查询】语法代码

[复制链接]

UID
1
贡献
844
金币
1540
主题
520
在线时间
333 小时
注册时间
2022-1-15
最后登录
2024-11-12
QQ
发表于 2022-11-27 20:31:50 | 450 | 0 | 显示全部楼层 |阅读模式
mysql数据库教程group by 【分组查询】语法代码

将查询的结果分组,分组查询目的在于统计数据。

  1. -- 查询男生和女生的各自语文平均分
  2. mysql> select stusex,avg(ch) '平均分' from stu group by stusex;
  3. +--------+---------+
  4. | stusex | 平均分       |
  5. +--------+---------+
  6. | 女      | 72.2500 |
  7. | 男       | 77.0000 |
  8. +--------+---------+
  9. 2 rows in set (0.00 sec)

  10. -- 查询男生和女生各自多少人
  11. mysql> select stusex,count(*) 人数 from stu group by stusex;
  12. +--------+------+
  13. | stusex | 人数     |
  14. +--------+------+
  15. | 女      |    4 |
  16. | 男       |    5 |
  17. +--------+------+
  18. 2 rows in set (0.00 sec)

  19. -- 查询每个地区多少人
  20. mysql> select stuaddress,count(*) from stu group by stuaddress;
  21. +------------+----------+
  22. | stuaddress | count(*) |
  23. +------------+----------+
  24. | 上海          |        1 |
  25. | 北京           |        3 |
  26. | 天津           |        2 |
  27. | 河北          |        2 |
  28. | 河南           |        1 |
  29. +------------+----------+
  30. 5 rows in set (0.00 sec)

  31. -- 每个地区的数学平均分
  32. mysql> select stuaddress,avg(math) from stu group by stuaddress;
  33. +------------+-----------+
  34. | stuaddress | avg(math) |
  35. +------------+-----------+
  36. | 上海          |   76.0000 |
  37. | 北京           |   74.5000 |
  38. | 天津           |   83.0000 |
  39. | 河北          |   72.0000 |
  40. | 河南           |   56.0000 |
  41. +------------+-----------+
  42. 5 rows in set (0.00 sec)
复制代码
查询字段是普通字段,只取第一个值

mysql数据库教程group by 【分组查询】语法代码

mysql数据库教程group by 【分组查询】语法代码


通过group_concat()函数将同一组的值连接起来显示

  1. mysql> select group_concat(stuname),stusex,avg(math) from stu group by stusex;
  2. +-------------------------------------+--------+-----------+
  3. | group_concat(stuname)               | stusex | avg(math) |
  4. +-------------------------------------+--------+-----------+
  5. | 李斯文,诸葛丽丽,梅超风,Tabm             | 女      |   70.5000 |
  6. | 张秋丽,李文才,欧阳俊雄,争青小子,Tom      | 男       |   77.2500 |
  7. +-------------------------------------+--------+-----------+
  8. 2 rows in set (0.00 sec)
复制代码
多列分组

  1. mysql> select stuaddress,stusex,avg(math) from stu group by stuaddress,stusex;
  2. +------------+--------+-----------+
  3. | stuaddress | stusex | avg(math) |
  4. +------------+--------+-----------+
  5. | 上海          | 男       |   76.0000 |
  6. | 北京           | 女      |   82.0000 |
  7. | 北京           | 男       |   67.0000 |
  8. | 天津           | 男       |   83.0000 |
  9. | 河北          | 女      |   72.0000 |
  10. | 河南           | 女      |   56.0000 |
  11. +------------+--------+-----------+
  12. 6 rows in set (0.00 sec)
复制代码
小结:
1、如果是分组查询,查询字段是分组字段和聚合函数。
2、查询字段是普通字段,只取第一个值
3、group_concat()将同一组的数据连接起来
楼主热帖

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

快速回复 返回顶部 返回列表