程序员社区

MySQL系列教程 --- 49、MySQL 中的GROUP BY语句

MYSQL GROUP BY 子句用于从多条记录中收集数据并将结果按一列或多列分组。它通常用于 SELECT 语句。

您还可以在分组列上使用一些聚合函数,如 COUNT、SUM、MIN、MAX、AVG 等。

句法:

SELECT expression1, expression2, ... expression_n,   
aggregate_function (expression)  
FROM tables  
[WHERE conditions]  
GROUP BY expression1, expression2, ... expression_n;  

参数

expression1, expression2, ... expression_n:指定未封装在聚合函数中且必须包含在 GROUP BY 子句中的表达式。

聚合函数它指定了一个函数,例如 SUM、COUNT、MIN、MAX 或 AVG 等。 表:它指定了要从中检索记录的表。FROM 子句中必须至少列出一个表。

WHERE 条件:可选。它指定要选择的记录必须满足的条件。

(i) 带有 COUNT 函数的 MySQL GROUP BY 子句

考虑一个名为“officers”的表,具有以下记录。

file

现在,让我们计算列地址中城市的重复数量。

执行以下查询:

SELECT address, COUNT(*)  
FROM   officers   
GROUP BY address;   

输出:

file

(ii) 带有 SUM 函数的 MySQL GROUP BY 子句

让我们以一个“employees”表为例,其中包含以下数据。

file

现在,以下查询将使用 SUM 函数对示例进行 GROUP BY,并返回每个员工的 emp_name 和总工作时间。

执行以下查询:

SELECT emp_name, SUM(working_hours) AS "Total working hours"  
FROM employees  
GROUP BY emp_name;  

输出:

file

(iii) 带有 MIN 函数的 MySQL GROUP BY 子句

以下示例指定表“employees”中员工的最短工作时间。

执行以下查询:

SELECT emp_name, MIN(working_hours) AS "Minimum working hour"  
FROM employees  
GROUP BY emp_name;  

输出:

file

(iv) 带有 MAX 函数的 MySQL GROUP BY 子句

以下示例指定表“employees”中员工的最长工作时间。

执行以下查询:

SELECT emp_name, MAX (working_hours) AS "Minimum working hour"  
FROM employees  
GROUP BY emp_name;  

输出:

file

(v) 带有 AVG 函数的 MySQL GROUP BY 子句

以下示例指定表“employees”中员工的平均工作时间。

执行以下查询:

SELECT emp_name, AVG(working_hours) AS "Average working hour"  
FROM employees  
GROUP BY emp_name;  

输出:

file

赞(0) 打赏
未经允许不得转载:IDEA激活码 » MySQL系列教程 --- 49、MySQL 中的GROUP BY语句

一个分享Java & Python知识的社区