使用cube
最近更新时间: 2025-02-18 16:02:00
#*cube((a),(b))等价于grouping sets((a,b),(a),(b),()) *
postgres=#select dep,product,sum(num) from t_grouping group by cube((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
| 电脑 | 280
| 手机 | 370
| | 650
#该功能等价于groupingsets((name,class),(name),(class),())
postgres=#select dep,product,sum(num) from t_grouping group by grouping sets((dep,product),(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
| 电脑 | 280
| 手机 | 370
| | 650