【数据库】MySql分组查询详解-GROUP BY

打印 上一主题 下一主题

主题 872|帖子 872|积分 2616

GROUP BY 是 SQL 中用于将结果集按一个或多个列进行分组,以便可以对每个分组实行聚合函数(如 COUNT(), SUM(), AVG(), MAX(), MIN() 等)的语句。在 GROUP BY 子句背面列出的列将作为分组的基础。
语法:

  1. SELECT column1, column2, aggregate_function(column3)  
  2. FROM table_name  
  3. WHERE condition  
  4. GROUP BY column1, column2  
  5. ORDER BY column1, column2;
复制代码
详细说明:


  • SELECT 语句:在这里,你可以指定你想从数据库表中检索的列。你还可以在 SELECT 语句中使用聚合函数,对这些列实行盘算。
  • FROM 子句:它指定了要从中检索数据的表或视图。
  • WHERE 子句(可选):你可以使用 WHERE 子句来过滤结果集,只包括满意指定条件的纪录。
  • GROUP BY 子句:这是将结果集进行分组的关键部分。你需要在 GROUP BY 背面列出你想按其进行分组的列。
  • ORDER BY 子句(可选):你可以使用 ORDER BY 子句对结果集进行排序。你可以指定多个列进行排序,每个列之间用逗号分隔。
举例:

假设我们有一个名为 employees 的表,其中包含员工的以下信息:


  • id: 员工的唯一标识符
  • name: 员工的名字
  • department: 员工所在的部分
  • salary: 员工的薪水
现在,假如我们想找出每个部分的员工数量和总薪水,我们可以使用 GROUP BY 查询,如下所示:
  1. SELECT department, COUNT(*) AS number_of_employees, SUM(salary) AS total_salary  
  2. FROM employees  
  3. GROUP BY department;
复制代码
在这个查询中:


  • 我们选择了 department 列,并使用 COUNT(*) 和 SUM(salary) 聚合函数来盘算每个部分的员工数量和总薪水。
  • 使用 GROUP BY department 将结果集按 department 列进行分组。这意味着,对于表中的每个差别的部分值,我们将得到一行结果,其中包含该部分的员工数量和总薪水。
如许,将得到一个按部分分组的员工数量和总薪水的列表。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美丽的神话

金牌会员
这个人很懒什么都没写!

标签云

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