动态实现行转列

今天学到一招不需要复杂的SQL函数来实现动态行转列,首先什么是动态行转列,我们来看一个例子。如图1的表设计,我们能看到不同渠道的付款金额、付款订单数量、付款商品件数、付款金额(去税)如果你想要展示不同渠道的付款金额、付款订单数量、付款商品件数、付款金额(去税)在列上如图2所示。即渠道+付款金额合并为一个字段展示在不同的列上,如果涉及多个渠道也不需要手动添加。首先在图1的基础上对付款金额、付款订单数量、付款商品件数、付款金额(去税)进行列转行。

图
图1
在这里插入图片描述
图2
这几个字段可通过逆透视列转行后如图3所示,渠道+指标列进行拼接即可形成我们想要图4所示的渠道+指标字段。

在这里插入图片描述图3
在这里插入图片描述图4
对拼接后的渠道指标字段进行行转列,如图5所示,即可实现新增渠道时,动态新增对应渠道的付款金额、付款订单数量、付款商品件数、付款金额(去税)。
在这里插入图片描述
图5

总结一下,对某个字段的枚举值进行动态行转列操作可根据三步走:

第一步:首先对需要拼接的字段(付款金额、付款订单数量、付款商品件数)进行列转行

第二步:对需要把枚举值转换到列上的字段(渠道)和转为行的字段进行拼接

第三步:对拼接后的字段进行行转列

大功告成,如果新增了一些渠道,也可自动实现渠道+字段的转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ferry 1Q84

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值