SQL Server 使用PIVOT两次对一组数据进行展平和分组

brtdzjyr  于 2023-01-01  发布在  其他
关注(0)|答案(1)|浏览(203)

我正在尝试从SQL查询(使用MS SQL Server)中平面化一组数据,我需要做两次。
这是我的示例数据。

这是我想要显示的数据

我设法使用PIVOT为每个建筑物获得了一个高度和一个面积,但我需要再次进行透视,以便为每个建筑物保留一行,其中包含所有相关数据。
我认为解决方案需要同时使用枢轴和交叉应用,但我找不到正确的使用方法。
谢谢你的帮忙!

anauzrmj

anauzrmj1#

不需要CROSSAPPLY,一个简单的PIVOT或条件聚集就可以了。只要记住用最少的所需列数“FEED”你的透视。

Select *
 From  (
        Select Building
              ,Item  = concat([Floor],MeasureName)
              ,Value = MeasureValue
          From YourTable
       ) src
 Pivot ( max( Value ) for Item in ( [floor1height]
                                   ,[floor1area]
                                   ,[floor2height]
                                   ,[floor2area] 
                                  ) ) Pvt

相关问题