首页 > 数据库 > mysql教程 > 如何在 SQL Server 中同时透视多个列?

如何在 SQL Server 中同时透视多个列?

Susan Sarandon
发布: 2024-12-31 09:29:09
原创
912 人浏览过

How to Pivot Multiple Columns Simultaneously in SQL Server?

在 SQL Server 中透视多个列

透视是 SQL 中的一种转换技术,允许将数据从列排列到行中。在此上下文中,您的目标是将类别列转换为行并显示每个类别的销售额、库存和目标值。

示例输入:

Branch  Category  Sales  Stock  Target
Branch1 Panel     100    20     30
Branch1 AC        120    30     40
Branch1 Ref       150    40     50
登录后复制

想要的输出:

Branch Panel AC Ref
Branch1 100 120 150
Branch1 20 30 40
Branch1 30 40 50

解决方案:

要获得想要的输出,需要执行多次旋转操作:

SELECT
*
FROM
(
  SELECT 
   Branch,
   Category,
   Category+'1' As Category1,
   Category+'2' As Category2,
   Sales, 
   Stock, 
   Target
  FROM TblPivot
) AS P

-- For Sales
PIVOT
(
   SUM(Sales) FOR Category IN ([Panel], [AC], [Ref])
) AS pv1

-- For Stock
PIVOT
(
   SUM(Stock) FOR Category1 IN ([Panel1], [AC1], [Ref1])
) AS pv2

-- For Target
PIVOT
(
   SUM(Target) FOR Category2 IN ([Panel2], [AC2], [Ref2])
) AS pv3
登录后复制

注意:

  • 第一个子查询为具有 Category1 和 Category2 的 Category 列分配新名称,为多个透视做好准备。
  • 后续的透视操作使用这些扩展列名称为每个列创建行类别。
  • 聚合应用于列以汇总每个类别的值。

此外,您可以根据需要在 pv3 上使用聚合函数来进一步汇总数据。

以上是如何在 SQL Server 中同时透视多个列?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板