使用前提:
1、在使用group by 语句后,可能会对数据再次进行汇总,这个时候就需要with rollup。
2、with rollup 就是作用在聚合函数上的。如果聚合函数是COUNT(*)则会在统计的记录中再次求COUNT(*),如果是AVG(),则会在分组
3、with rollup 作用在group by 的第一个字段
(举例:先按照部门进行分组,再按照性别进行分组。使用with rollup 只作用在使用部门进行分组的表中,对聚合函数起作用)
应用实例:
代码实现
CREATE TABLE IF NOT EXISTS techers(
id INT,
age INT,
`name` VARCHAR(10),
salary INT
);
INSERT INTO techers(id,age,`name`,salary)
VALUES (1,22,'王三',2200),
(2,23,'梁夏',2000),
(3,24,'李杰',2222),
(4,25,'王飞',1200);
SELECT *
FROM techers;
SELECT COUNT(*),age,AVG(salary)
FROM techers
GROUP BY age
WITH ROLLUP;