使用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