使用rollup
最近更新时间: 2025-02-18 16:02:00
使用rollup
* rollup((a),(b))等价于grouping sets((a,b),(a),()) *
postgres=# select dep,product,sum(num) from t_grouping group by rollup((dep),(product)) order by dep,product;
dep | product | sum
---------+---------+-----
业务1部 | 电脑 | 80
业务1部 | 手机 | 160
业务1部 | | 240
业务2部 | 电脑 | 120
业务2部 | 手机 | 50
业务2部 | | 170
业务3部 | 电脑 | 80
业务3部 | 手机 | 160
业务3部 | | 240
| | 650
该功能等价于grouping sets((dep, product),( dep),())
postgres=# select dep,product,sum(num) from t_grouping group by grouping sets((dep, product),( dep),()) order by dep,product;
dep | product | sum
---------+---------+-----
业务1部 | 电脑 | 80
业务1部 | 手机 | 160
业务1部 | | 240
业务2部 | 电脑 | 120
业务2部 | 手机 | 50
业务2部 | | 170
业务3部 | 电脑 | 80
业务3部 | 手机 | 160
业务3部 | | 240
| | 650