有可能把行值转换成列。我使用的是oraclesql,我希望将月份转换为具有kpi值的列,如下所示。我尝试了分区和合并语句,但似乎没有任何效果。我非常感谢你的帮助。先谢谢你。输入数据:部门年度月HKPIVALUEA2000销售额5000A2000每位客户收入120A20002销售额6000A20002每位客户收入140期望输出:部门年度KPI12A2000销售额50006000A2000每客户收入120140
sgtfey8w1#
你可以用 pivot 为此:架构和插入语句:
pivot
create table mytable (department varchar(20),year int,month int,kpi varchar(50),value int); insert into mytable values('A', 2000, 1, 'sales' ,5000); insert into mytable values('A', 2000, 1, 'revenue per client', 120); insert into mytable values('A', 2000, 2, 'sales' ,6000); insert into mytable values('A', 2000, 2, 'revenue per client', 140);
查询:
select * from ( select department,year,month,kpi,value from mytable ) pivot ( max(value) for month in (1,2) )
输出:部门年度KPI12A2000每客户收入120140A2000销售额50006000db<在这里摆弄
jk9hmnmh2#
可以使用条件聚集:
select department, year, kpi, max(case when month = 1 then value end) as month_1, max(case when month = 2 then value end) as month_2 from t group by department, year, kpi;
2条答案
按热度按时间sgtfey8w1#
你可以用
pivot
为此:架构和插入语句:
查询:
输出:
部门年度KPI12A2000每客户收入120140A2000销售额50006000
db<在这里摆弄
jk9hmnmh2#
可以使用条件聚集: