【问题标题】:Aggregate in pivot in SQL ServerSQL Server 中的数据透视聚合
【发布时间】:2017-10-19 09:23:56
【问题描述】:

我试试这个

declare @t as table (yea int, rating varchar(100))

insert into @t 
values (2012, 'US'), (2013, 'S'), (2014, 'G'),
       (2015, 'E'), (2016, 'E')     

--select * from @T

select 
    [2012], [2013], [2014], [2015], [2016]
from 
    (select rating
     from @T) p 
pivot
    (max (rating) 
     for rating in ([2012], [2013], [2014], [2015], [2016])) as pb

我得到了这个结果:

2012    2013    2014    2015    2016
--------------------------------------
NULL    NULL    NULL    NULL    NULL

但我真的很喜欢这个结果:

2012    2013    2014    2015    2016
-------------------------------------
US      S       G       E       E

这个空数据是因为max(rating)吗?如果是这样 - 我如何获得所需的数据?

【问题讨论】:

    标签: sql-server pivot aggregate


    【解决方案1】:

    你错过了是的(不确定是不是错字,所以我保持原样)

    declare @t as table (yea int, rating varchar(100))
            insert into @t values (2012,'US')       
            insert into @t values (2013,'S')                
            insert into @t values (2014,'G')
            insert into @t values (2015,'E')        
            insert into @t values (2016,'E')        
            --select * from @T
            select [2012],[2013],[2014],[2015],[2016]
                from 
                (select yea,rating
                from @T 
                ) p 
                pivot
                (max (rating) for yea in ([2012],[2013],[2014],[2015],[2016])) as pb
    

    返回

    2012    2013    2014    2015    2016
    US      S       G       E       E
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 2016-06-10
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多