MySQL GROUP BY子句


MySQL GROUP BY子句用来SELECT语句中收集跨多条记录的数据,并按一个或多个列对结果进行分组。

语法

MySQL中GROUP BY子句的语法为:

1
2
3
4
5
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子句中必须至少有一个表。
conditions 可选的。选择记录必须满足的条件。

MySQL GROUP BY子句示例

示例-使用SUM函数的GROUP BY子句

1
2
3
SELECT product, SUM(quantity) AS "总数量"
FROM order_details
GROUP BY product;

使用SUM函数返回产品名称和总数量。
因为在SELECT语句中列出了未封装在SUM函数中的一列(product字段),所以在GROUP BY子句中,必须包含该字段。

示例-在MySQL 的COUNT函数中使用GROUP BY子句

1
2
3
4
SELECT product, COUNT(*) AS "Number of orders"
FROM order_details
WHERE category = 'produce'
GROUP BY product;

示例-使用MIN函数的GROUP BY子句

1
2
3
SELECT department, MIN(salary) AS "最低工资"
FROM employees
GROUP BY department;

返回每个部门的名称和部门中的最低工资。

示例-使用MAX函数的GROUP BY子句

1
2
3
SELECT department, MAX(salary) AS "最高工资"
FROM employees
GROUP BY department;

返回每个部门的名称和部门中的最高薪水。


原文链接:https://codingdict.com/