数据库-行转列

数据表如下所示:

订单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

输出结果如下:

数据库-行转列_第1张图片

你可能感兴趣的:(数据库-行转列)