oracle行转列

遇到需要按周或者按月份进行汇总的需求是,通常要实现行转列才能得到我们想要的结果。
步骤:
用 sum(case when 按什么条件进行汇总 then 1 else 0 end)
例子:
需要按时间分月进行每月设备数
sum(case when 初次升级时间 BETWEEN DATE’2021-01-01’ and DATE’2021-01-31’ then 1 else 0 end) 一月

select 排序,营业厅,
sum(case when 初次升级时间 BETWEEN DATE'2021-01-01' and DATE'2021-01-31' then 1 else 0 end) 一月,
sum(case when 初次升级时间 BETWEEN DATE'2021-02-01' and DATE'2021-02-28' then 1 else 0 end) 二月,
sum(case when 初次升级时间 BETWEEN DATE'2021-03-01' and DATE'2021-03-31' then 1 else 0 end) 三月,
sum(case when 初次升级时间 BETWEEN DATE'2021-04-01' and DATE'2021-04-30' then 1 else 0 end) 四月,
sum(case when 初次升级时间 BETWEEN DATE'2021-05-01' and DATE'2021-05-31' then 1 else 0 end) 五月,
sum(case when 初次升级时间 BETWEEN DATE'2021-06-01' and DATE'2021-06-30' then 1 else 0 end) 六月,
sum(case when 初次升级时间 BETWEEN DATE'2021-07-01' and DATE'2021-07-31' then 1 else 0 end) 七月,
sum(case when 初次升级时间 BETWEEN DATE'2021-08-01' and DATE'2021-08-31' then 1 else 0 end) 八月,
sum(case when 初次升级时间 BETWEEN DATE'2021-09-01' and DATE'2021-09-30' then 1 else 0 end) 九月,
sum(case when 初次升级时间 BETWEEN DATE'2021-10-01' and DATE'2021-10-31' then 1 else 0 end) 十月,
sum(case when 初次升级时间 BETWEEN DATE'2021-11-01' and DATE'2021-11-30' then 1 else 0 end) 十一月
from tmp_1111
group by 排序,营业厅
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值