MySQL - GROUP BY语句

MySQL - GROUP BY语句 首页 / MySQL入门教程 / 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子句中的表达式。

aggregate_function                                                     -  它指定一个函数,例如SUM,COUNT,MIN,MAX或AVG等。 

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

GROUP BY COUNT

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

MySQL group by clause 1

现在,让无涯教程在列地址中计算重复的城市数。

执行以下查询:

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

输出:

MySQL group by clause 2

GROUP BY SUM

无涯教程来看一个表" employees"的表,其中包含以下数据。

MySQL group by clause 3

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

无涯教程网

执行以下查询:

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

输出:

MySQL group by clause 4

GROUP BY MIN

下面的示例从"employees"表中指定员工​​的最低工作时间。

执行以下查询:

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

输出:

MySQL group by clause 5

GROUP BY MAX

下面的示例从"employees"表中指定员工​​的最长工作时间。

执行以下查询:

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

输出:

MySQL group by clause 6

GROUP BY AVG

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

执行以下查询:

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

输出:

MySQL group by clause 7

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

技术领导力实战笔记 -〔TGO鲲鹏会〕

恋爱必修课 -〔李一帆〕

去无方向的信 -〔小麥〕

网络排查案例课 -〔杨胜辉〕

超级访谈:对话玉伯 -〔玉伯〕

Dubbo源码剖析与实战 -〔何辉〕

快速上手C++数据结构与算法 -〔王健伟〕

手把手带你写一个MiniSpring -〔郭屹〕

给程序员的写作课 -〔高磊〕

好记忆不如烂笔头。留下您的足迹吧 :)