在 SQL Server 中透视多个列以实现最佳数据呈现
使用关系数据库时,透视表可能是重塑数据的有效方法以便于分析和可视化。在 SQL Server 中,当处理具有多个要显示为行的列的表时,此技术特别有用。
问题陈述:
考虑以下示例table:
Branch | Category | Sales | Stock | Target ------- | ******** | ----- | ----- | ------- Branch1 | Panel | 100 | 200 | 300 Branch1 | AC | 150 | 250 | 350 Branch1 | Ref | 200 | 300 | 400
目标是透视类别列并将销售、库存和目标列显示为行,产生以下结果输出:
Branch | Panel | AC | Ref | ------- | ------ | -- | ---- | Branch1 | 100 | 150 | 200 |
解决方案:
为了获得所需的输出,我们可以在SQL Server中使用一系列的pivot语句。关键是重命名中间透视结果中的列,为后续的透视操作做准备。
考虑以下代码:
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 GO
此代码执行以下步骤:
生成的 pv3 表包含所需的输出,其中类别为行,列代表销售额、库存和目标值。
以上是如何在 SQL Server 中透视多个列以实现最佳数据呈现?的详细内容。更多信息请关注PHP中文网其他相关文章!