📅  最后修改于: 2023-12-03 15:03:06.425000             🧑  作者: Mango
在MySQL中,分组是一种强大的工具,可以根据一个或多个列的值对数据进行分组和汇总。在数据集太大而无法一次访问所有行时,分组成为必要的技术。MySQL允许对分组后的结果再次进行分组,即多重分组。
SELECT [列名], [列名]... FROM [表名] GROUP BY [列名], [列名]... WITH ROLLUP;
SELECT department, status, COUNT(*) as cnt
FROM employee
GROUP BY department, status WITH ROLLUP;
此示例将在employee表中,根据部门和状态列进行分组,并计算每个组中的行数。WITH ROLLUP选项将基于部门和状态列生成子汇总和一个Grand Total记录。
| department | status | cnt | |------------|-----------|-----| | HR | Contract | 2 | | HR | Full Time | 1 | | IT | Contract | 1 | | IT | Full Time | 2 | | IT | NULL | 3 | | Sales | Full Time | 1 | | Sales | NULL | 1 | | NULL | NULL | 5 |
结果表显示了按部门和状态分组的结果以及一个总计行。
多重分组语句可以在一次查询中汇总多个列的值,并提供总计行。了解如何使用多重分组,可以轻松处理任何汇总信息。