MySQL GROUP BY 子句

17 Mar 2025 | 阅读 2 分钟

MYSQL GROUP BY 子句用于从多个记录中收集数据,并按一个或多个列对结果进行分组。它通常在 SELECT 语句中使用。

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

语法

参数

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

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

WHERE conditions: 这是可选的。它指定必须满足的条件才能选择记录。

(i) MySQL GROUP BY 子句与 COUNT 函数

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

MySQL group by clause 1

现在,让我们计算 address 列中城市重复的次数。

执行以下查询

输出

MySQL group by clause 2

(ii) MySQL GROUP BY 子句与 SUM 函数

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

MySQL group by clause 3

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

执行以下查询

输出

MySQL group by clause 4

(iii) MySQL GROUP BY 子句与 MIN 函数

下面的示例指定了“employees”表中员工的最低工作小时数。

执行以下查询

输出

MySQL group by clause 5

(iv) MySQL GROUP BY 子句与 MAX 函数

下面的示例指定了“employees”表中员工的最高工作小时数。

执行以下查询

输出

MySQL group by clause 6

(v) MySQL GROUP BY 子句与 AVG 函数

下面的示例指定了“employees”表中员工的平均工作小时数。

执行以下查询

输出

MySQL group by clause 7
下一主题MySQL Having