行列互换向并纵横向汇总

【问题】

部门               类别
生产部         台式机
研发部         笔记本
管理部         台式机
生产部         台式机
研发部         笔记本
管理部        台式机
想得到如下结果:
部门           台式机    笔记本       部门合计
生产部           2              0                  2
研发部           0              2                  2
管理部           2              0                  2
总计               4               2                 6

【回答】

这里的动态行列转换,如果是为了前端展现,用润乾报表很容易办到,做一个交叉报表即可,横向和纵向的汇总也可以在报表端去实现。如果是要整理成这样一个结果集,提供给其他应用程序,我们看SPL是如何做的:

A
1$select 部门,类别,count(1)   as 计数 from tb group by 部门, 类别
2=A1.pivot(部门;类别,计数)
3= A2.run(~.record(~.array().(if(~,~,0))))
4=A3.derive(~.array().to(2:).sum():部门合计)
5=A4.record("合计"|(A4.fno()-1).(A4.field(~+1).sum()))

A1:通过sql按照部门,类别分组统计设备台数

A2:对A1行转列,组成由部门、台式机、笔记本组成的新序表

A3:将计数为null的字段值修改为0

A4:给A3增加部门合计列

A5:对A4添加合计行,结果如下:

undefined

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值