SQL Server数据库月份统计数据-PIVOT函数的使用

SQL Server数据库中,PIVOT在帮助中这样描述滴:可以使用 PIVOT 和UNPIVOT 关系运算符将表值表达式更改为另一个表。PIVOT 通过将表达式某一列中的***值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值

pivot 使用sql ,可根据自己情况变更,但要注意行转列的条件与列名要对应上 如:下面sql 中 转换列countDate ,值 result 分别在PIVOT 中对应上 ,

select * from (select agencyId,agencyName,i.countDate,
isnull(max(i.avgTotalScore),max(i.dbItemAvgRatio)) result,
isnull(max(i.emergencyDrillCount),0) '应急演练' ,
isnull(max(i.vehicleUnRepairNum),0) '维修维护'
from implement_main_table i with(nolock) 
where type = 3 and vehicleNum>0 and i.area like '湖南%'
and countDate>='2023-01' and countDate<='2023-12'
group by agencyId,i.agencyName,countDate) t 
PIVOT ( MAX(result) FOR  
      countDate IN ([2023-01],[2023-02],[2023-03],[2023-04],[2023-05],[2023-06],[2023-07],[2023-08],[2023-09],[2023-10],[2023-11],[2023-12]) 
  ) as tb ;

转换后:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值