Mysql 简明教程
MySQL - GROUP BY Clause
MySQL GROUP BY Clause
MySQL 中的 GROUP BY 子句用于将表中的相同数据按组排列。
例如,假设你有一个包含日期、产品和销售额的组织销售数据的表。若要计算某一特定年份的总销售额,则可使用 GROUP BY 子句对该年份生产的产品的销售额进行分组。类似地,你可以按日期对数据进行分组,以计算每个日期的总销售额,或按产品和日期的组合对数据进行分组,以计算每天每种产品的总销售额。
此 GROUP BY 子句紧跟 SQL 语句中的 WHERE 子句并位于 ORDER BY 或 HAVING 子句之前(如果它们存在)。你可以使用 GROUP BY 对列中的值进行分组,并且可以在需要时对该列执行计算。你可以在分组的列上使用 COUNT、SUM、AVG 等函数。
Syntax
以下是将 GROUP BY 与 SELECT 语句一起使用的基本语法 −
SELECT column_name(s) FROM table_name
GROUP BY [condition | column_name(s)];
Example
此示例演示如何使用带有 GROUP BY 子句的 aggregate functions 。
首先,使用以下 CREATE TABLE 查询创建名为 CUSTOMERS 的表 −
CREATE TABLE CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
现在,使用以下 INSERT 语句将以下记录插入到 CUSTOMERS 表中 −
INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00),
(2, 'Khilan', 25, 'Delhi', 1500.00),
(3, 'Kaushik', 23, 'Kota', 2000.00),
(4, 'Chaitali', 25, 'Mumbai', 6500.00),
(5, 'Hardik', 27, 'Bhopal', 8500.00),
(6, 'Komal', 22, 'Hyderabad', 4500.00),
(7, 'Muffy', 24, 'Indore', 10000.00);
该表创建如下 −
现在,使用以下 GROUP BY 查询根据其年龄对客户进行分组 −
SELECT AGE, COUNT(Name) FROM CUSTOMERS GROUP BY AGE;