使用 GROUP BY 子句,将结果集中的数据行根据选择列的值进行逻辑分组,以便能汇总表内容的子集,实现对每个组而不是对整个结果集进行整合。
语法:GROUP BY { <列名> | <表达式> | <位置> } [ASC | DESC]
<列名>
:指定用于分组的列。可以指定多个列,彼此间用逗号分隔<表达式>
:指定用于分组的表达式。通常与聚合函数一块使用,例如可将表达式 COUNT(*)AS’ 人数 ’ 作为 SELECT 选择列表清单的一项。<位置>
:指定用于分组的选择列在 SELECT 语句结果集中的位置,通常是一个正整数。例如,GROUP BY 2 表示根据 SELECT 语句列清单上的第 2 列的值进行逻辑分组。ASC|DESC
:关键字 ASC 表示按升序分组,关键字 DESC 表示按降序分组,其中 ASC 为默认值,注意这两个关键字必须位于对应的列名、表达式、列的位置之后。
准备数据
DROP TABLE IF EXISTS employee;
-- 创建员工表
CREATE TABLE employee (
id int,
name varchar(50),
salary int,
departmentnumber int
);
-- 向员工表中插入数据
INSERT INTO employee values(1,'tome',2000,1001);
INSERT INTO employee values(2,'lucy',9000,1002);
INSERT I