数据表如下所示:
订单id | 订单金额 | 订单业务线 | 支付渠道 |
---|---|---|---|
1 | 10.21 | 快车 | 微信 |
2 | 13.34 | 快车 | 支付宝 |
3 | 17.58 | 快车 | 其他 |
4 | 15.31 | 顺风车 | 支付宝 |
5 | 38.31 | 顺风车 | 微信 |
6 | 20.31 | 出租车 | 现金 |
7 | 18.31 | 巴士 | 支付宝 |
8 | 12.31 | 巴士 | 微信 |
9 | 17.31 | 代驾 | 微信 |
想要实现如下的统计结果:
支付方式 | 快车订单金额 | 顺风车订单金额 | 出租车订单金额 | 巴士订单金额 | 小巴订单金额 | 代驾订单金额 |
---|---|---|---|---|---|---|
微信 | ||||||
支付宝 | ||||||
现金 |
假设你只学过mysql,可以用如下的方式解决:
select channel,
round(sum(case lob when '快车' then money else 0 end ),2) 快车业务线,
round(sum(case lob when '顺风车' then money else 0 end),2) 顺风车业务线,
round(sum(case lob when '出租车' then money else 0 end),2) 出租车业务线,
round(sum(case lob when '巴士' then money else 0 end),2) 巴士业务线,
round(sum(case lob when '代驾' then money else 0 end),2) 代驾业务线
from dd_order
group by channel
输出结果如下: