GROUP BY 是 SQL 中用于将结果集按一个或多个列进行分组,以便可以对每个分组实行聚合函数(如 COUNT(), SUM(), AVG(), MAX(), MIN() 等)的语句。在 GROUP BY 子句背面列出的列将作为分组的基础。
语法:
- SELECT column1, column2, aggregate_function(column3)
- FROM table_name
- WHERE condition
- GROUP BY column1, column2
- ORDER BY column1, column2;
复制代码 详细说明:
- SELECT 语句:在这里,你可以指定你想从数据库表中检索的列。你还可以在 SELECT 语句中使用聚合函数,对这些列实行盘算。
- FROM 子句:它指定了要从中检索数据的表或视图。
- WHERE 子句(可选):你可以使用 WHERE 子句来过滤结果集,只包括满意指定条件的纪录。
- GROUP BY 子句:这是将结果集进行分组的关键部分。你需要在 GROUP BY 背面列出你想按其进行分组的列。
- ORDER BY 子句(可选):你可以使用 ORDER BY 子句对结果集进行排序。你可以指定多个列进行排序,每个列之间用逗号分隔。
举例:
假设我们有一个名为 employees 的表,其中包含员工的以下信息:
- id: 员工的唯一标识符
- name: 员工的名字
- department: 员工所在的部分
- salary: 员工的薪水
现在,假如我们想找出每个部分的员工数量和总薪水,我们可以使用 GROUP BY 查询,如下所示:
- SELECT department, COUNT(*) AS number_of_employees, SUM(salary) AS total_salary
- FROM employees
- GROUP BY department;
复制代码 在这个查询中:
- 我们选择了 department 列,并使用 COUNT(*) 和 SUM(salary) 聚合函数来盘算每个部分的员工数量和总薪水。
- 使用 GROUP BY department 将结果集按 department 列进行分组。这意味着,对于表中的每个差别的部分值,我们将得到一行结果,其中包含该部分的员工数量和总薪水。
如许,将得到一个按部分分组的员工数量和总薪水的列表。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |