EXCEL的转置功能
列转行
SELECT `项目`,`类型`,`值`
FROM
(
select `项目`
,map('申请率',`申请率`,'审批率',`审批率`) tmp
from tmp_table
)
LATERAL VIEW EXPLODE(tmp) explode_table AS `类型`,`值`
转置前
项目 | 申请率 | 审批率 |
---|---|---|
甲 | 80% | 75% |
乙 | 78% | 60% |
转置后
项目 | 类型 | 值 |
---|---|---|
甲 | 申请率 | 80% |
甲 | 审批率 | 75% |
乙 | 申请率 | 78% |
乙 | 审批率 | 60% |
行转列
SELECT `类型`
,sum( case when `项目` = '甲' then `值` else 0 end ) `甲`
,sum( case when `项目` = '乙' then `值` else 0 end ) `乙`
FROM table
GROUP BY `类型`
再次转置后
类型 | 甲 | 乙 |
---|---|---|
申请率 | 80% | 78% |
审批率 | 75% | 60% |
版权声明:本文为qq_34019697原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。