oracle,postgresql实现行转列显示

项目背景

今天开发人员要生成业务报表,应有的数据格式如下
测试数据
在这里插入图片描述
希望等到如下结果
生成结果
在这里插入图片描述
说明:总合格率这一列不用考虑实现,使用oracle花了两个多小时才实现

大家需要花多少时间呢,对postgresql感兴趣的朋友,可从花时间试试?

oracle实现方式–decode

create table tt_tt(dsmc varchar2(100),sblx char(1),sl number,hgl number)

insert into tt_tt values(‘成都’,‘A’,98,0.95);
insert into tt_tt values(‘成都’,‘B’,98,0.95);
insert into tt_tt values(‘成都’,‘C’,98,0.96);
insert into tt_tt values(‘遂宁’,‘A’,97,0.95);
insert into tt_tt values(‘遂宁’,‘D’,98,0.95);
insert into tt_tt values(‘德阳’,‘B’,99,0.97);
insert into tt_tt values(‘德阳’,‘C’,98,0.95);
insert into tt_tt values(‘德阳’,‘D’,100,0.98);

select dsmc,max(decode(sblx,‘A’,sl)) A_SL,max(decode(sblx,‘A’,hgl)) A_HGL,max(decode(sblx,‘B’,sl)) B_SL,max(decode(sblx,‘B’,hgl))B_HGL ,
max(decode(sblx,‘C’,sl)) C_SL,max(decode(sblx,‘C’,hgl)) C_HGL,max(decode(sblx,‘D’,sl)) D_SL,max(decode(sblx,‘D’,hgl)) D_HGL
from tt_tt
group by dsmc
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值