MySQL Group By语句
MYSQL GROUP BY 子句用于从多条记录中收集数据,并将结果按一列或多列分组。它通常用于 SELECT 语句中。
您还可以在分组列上使用一些聚合函数,如 COUNT、SUM、MIN、MAX、AVG 等。
一、MySQL Group By语句的语法
SELECT expression1, expression2, ... expression_n,
aggregate_function (expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n;
参数说明:
expression1, expression2, ... expression_n:指定未封装在聚合函数中的表达式,必须包含在 GROUP BY 子句中。
aggregate_function:它指定一个函数,例如 SUM、COUNT、MIN、MAX 或 AVG 等。 tables:它指定要从中检索记录的表。FROM 子句中必须至少列出一个表。
WHERE conditions:可选。它指定要选择的记录必须满足的条件。
二、带有 COUNT 函数的 MySQL GROUP BY 子句
现有一个名为“officers”的表,具有以下记录。
现在,让我们计算地址列中重复的城市数。
执行以下SQL语句:
SELECT address, COUNT(*)
FROM officers
GROUP BY address;
输出结果为:
三、带有 SUM 函数的 MySQL GROUP BY 子句
让我们看一个表“employees”表,其中包含以下数据。
现在,以下查询将使用 SUM 函数对示例进行 GROUP BY,并返回每个员工的 emp_name 和总工作时间。
执行以下SQL语句:
SELECT emp_name, SUM(working_hours) AS "Total working hours"
FROM employees
GROUP BY emp_name;
输出结果为:
四、带有 MIN 函数的 MySQL GROUP BY 子句
以下示例从“employees”表中指定员工的最短工作时间。
执行以下SQL语句:
SELECT emp_name, MIN(working_hours) AS "Minimum working hour"
FROM employees
GROUP BY emp_name;
输出结果为:
五、带有MAX 功能的 MySQL GROUP BY 子句
以下示例从“employees”表中指定员工的最长工作时间。
SELECT emp_name, MAX (working_hours) AS "Minimum working hour"
FROM employees
GROUP BY emp_name;
输出结果为:
六、带有 AVG 功能的 MySQL GROUP BY 子句
下面的示例从“employees”表中指定员工的平均工作时间。
执行以下SQL语句:
SELECT emp_name, AVG(working_hours) AS "Average working hour"
FROM employees
GROUP BY emp_name;
输出结果为:
热门文章
优秀文章