sql server之pivot函数

PIVOT用于将列值旋转为列名(即行转列)   
       今天整理以前的笔记时,发现以前在PPD实习的时候遇到一个场景,感觉很实用所以想记录一下,说不定以后能用到,话不多说,直接上案例:
--表table1
问题编号  时间节点 listing_size  TotalAmount
 1.1      2014      0-1k        623.900
 1.1      2014      10k-50k      62390 
 1.1      2014      1k-5k       3239.00
 1.1      2014       50k+        623900
 1.1      2014      10k-50k       12500
 1.1      2014      5k-10k        6239 
 1.1      2014      5k-10k        8546
 1.1      2014      5k-10k        6548

现在想将其转换为如下场景:

 问题编号 时间节点  [0-1k],[1k-5k],[5k-10k],[10k-50k],[50k+]
  1.1    2014    623.9   ***     ***      ***       ***

代码实现如下:

 select 问题编号,时间节点,[0-1k],[1k-5k],[5k-10k],[10k-50k],[50k+]
  from table1
  PIVOT
   (
     SUM (TotalAmount) for listing_size in ([0-1k],[1k-5k],[5k-10k],[10k-50k],[50k+])
   )tbl

由于现在主要用hive导致很少用sql server了,所以没有运行环境了,但是这个案例绝对可以运行成功~

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值