mysql group by with rollup,mysqlrollup
1、普通的 GROUP BY 操作,可以按照部门和职位进行分组,计算每个部门,每个职位的工资平均值: mysql> select dep,pos,avg(sal) from employee group by dep,pos; +------+------+-----------+ | dep | pos | avg(sal) | +------+------+-----------+ | 01 | 01 | 1500.0000 | | 01 | 02 | 1950.0000 | | 02 | 01 | 1500.0000 | | 02 | 02 | 2450.0000 | | 03 | 01 | 2500.0000 | | 03 | 02 | 2550.0000 | +------+------+-----------+ 6 rows in set (0.02 sec) 2、如果我们希望显示部门的平均值和全部雇员的平均值,普通的 GROUP BY 语句是不能实现的,需要另外执行一个查询操作,或者通过程序来计算。如果使用有 WITH ROLLUP 子句的 GROUP BY 语句,则可以轻松实现这个要求: mysql> select dep,pos,avg(sal) from employee group by dep,pos with rollup; +------+------+-----------+ | dep | pos | avg(sal) | +------+------+-----------+ | 01 | 01 | 1500.0000 | | 01 | 02 | 1950.0000 | | 01 | NULL | 1725.0000 | | 02 | 01 | 1500.0000 | | 02 | 02 | 2450.0000 | | 02 | NULL | 2133.3333 | | 03 | 01 | 2500.0000 | | 03 | 02 | 2550.0000 | | 03 | NULL | 2533.3333 | | NULL | NULL | 2090.0000 | +------+------+-----------+ 10 rows in set (0.00 sec)
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。