美丽的神话 发表于 2024-8-18 17:05:02

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

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企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【数据库】MySql分组查询详解-GROUP BY