MySQL GROUP BY子句

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;

参数

表达式1,表达式2,… 表达式_n: 它指定了那些没有封装在聚合函数中且必须包含在GROUP BY子句中的表达式。

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

WHERE条件: 它是可选的。它指定了必须满足的条件,以选择记录。

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

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

MySQL GROUP BY子句

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

执行以下查询:

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

输出:

MySQL GROUP BY子句

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

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

MySQL GROUP BY子句

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

执行以下查询:

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

输出:

MySQL GROUP BY子句

(iii) 使用 MIN 函数的 MySQL GROUP BY 子句

以下示例指定了来自表 “employees” 的员工的最小工作小时数。

执行以下查询:

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

输出:

MySQL GROUP BY子句

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

以下示例指定了表”employees”中员工的最大工作小时数。

执行以下查询:

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

输出:

MySQL GROUP BY子句

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

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

执行以下查询语句:

SELECT emp_name, AVG(working_hours) AS "平均工作小时数"
FROM employees
GROUP BY emp_name;

输出:

MySQL GROUP BY子句

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程