在 MySQL 中,解决这个问题的 SQL 可以这么写:
SELECT IFNULL(deptno, 'TOTAL') AS deptno, SUM(sal) sal FROM emp GROUP...注意:
ORDER BY 不能在 ROLLUP 中使用,两者为互斥关键字;
如果分组的列包含 NULL 值,那么 ROLLUP 的结果可能不正确,因为使用 ROLLUP 进行分组统计时,NULL 具有特殊意义...要实现的效果如下图:
?
在 MySQL 上实现的思路:
按照各个组合条件分别计算出结果;
使用 UNION ALL 把 1 中统计出来的结果合并到一块。...SELECT deptno AS '部门编号',job '职位', '按部门和职位合计' AS '计算规则', SUM(sal) '工资合计' FROM emp GROUP BY deptno...,'按职位合计',SUM(sal)FROM emp GROUP BY jobUNION ALLSELECT NULL,NULL,'公司总计',SUM(sal)FROM emp