zoukankan      html  css  js  c++  java
  • 《BI那点儿事》数据流转换——透视

    这个和T-SQL中的PIVOT和UNPIVOT的作用是一样的。数据透视转换可以将数据规范或使它在报表中更具可读性。

    通过透视列值的输入数据,透视转换将规范的数据集转变成规范程度稍低、但更为简洁的版本。例如,在列有客户名称、产品和购买数量的规范的 Orders 数据集中,任何购买多种产品的客户都有多行,每一行显示一种产品的详细订购信息。此时,如果对产品列透视数据集,透视转换可以输出每个客户只有一行的数据集。这一行列出该客户购买的所有产品,产品名称显示为列名,而数量则显示为产品列的值。并非每个客户都购买所有产品,所以很多列可能包含空值。
    透视数据集时,输入列在透视过程中扮演不同的角色。列可以按以下方式参与:

    • 将列原封不动地传递到输出。因为有许多输入行只能产生一个输出行,所以转换只复制列的第一个输入值。
    • 列作为一组记录的标识键或标识键的一部分。
    • 列定义透视。此列中的值与已透视数据集中的列相关联。
    • 列包含置于透视所创建的列中的值。

    生成测试数据:

    CREATE TABLE FactOrders
        (
          Id INT IDENTITY ,
          Cust VARCHAR(50) ,
          Product VARCHAR(50) ,
          Qty INT
        )
        
    INSERT  INTO FactOrders
            ( Cust ,
              Product ,
              Qty
            )
            SELECT  'Kate' ,
                    'Ham' ,
                    2
            UNION ALL
            SELECT  'Kate' ,
                    'Soda' ,
                    6
            UNION ALL
            SELECT  'Kate' ,
                    'Milk' ,
                    1
            UNION ALL
            SELECT  'Kate' ,
                    'Beer' ,
                    12
            UNION ALL
            SELECT  'Fred' ,
                    'Milk' ,
                    3
            UNION ALL
            SELECT  'Fred' ,
                    'Beer' ,
                    24
            UNION ALL
            SELECT  'Fred' ,
                    'Chips' ,
                    2
                    
    SELECT  *
    FROM    FactOrders

    配置示例数据集
    关系图中显示的示例数据集的具体配置如下:将 Cust 列的 PivotUsage 属性设置为 1,以指示这是设置键列;将 Product 输入列的 PivotUsage 属性设置为 2,以指示必须为每个产品创建一列;将 Qty 输入列的 PivotUsage 属性设置为 3,以指示将数量值放入透视列。
    将转换输出设置为包含六个列。这些列可以使用“高级编辑器”对话框进行添加,分别命名为 Cust、Ham、Soda、Milk、Beer 和 Chips。将 Ham 列的 PivotKeyValue 属性设置为 Ham,以指示转换应在输入列中查找该值。同样,将 Soda 列的 PivotKeyValue 属性设置为 Soda,依此类推。
    然后将转换输入中的列映射到输出中的列。
    将 Cust 列的 SourceColumn 属性配置为使用 Cust 输入列的沿袭标识符。将 Ham、Soda、Milk、Beer 和 Chips 各列的 SourceColumn 属性配置为使用 Qty 输入列的沿袭标识符。进行此配置的另一种方法是将 Ham、Soda、Milk、Beer 和 Chips 各列的 SourceColumn 属性设置为 -1,这将插入 True 值而非数据值。例如,这样 Beer 列就不会包含值 12 和 24 而是包含值 True,以便仅指示该客户购买了产品,但不显示购买数量。
    转换输出中的行包含来自 Cust 和 Qty 输入列的值。

  • 相关阅读:
    Asp.net 动态添加Meta标签
    【转】在SharePoint Server 2010中更改“我的网站”
    SPQuery DateTime 类型查询
    Asp.net Web Application 打开 SharePoint 2010 Site 错误 The Web application at could not be found
    How To Create SharePoint 2010 Site Collection In Its Own DB
    C# 文件打印
    面试题 java集合
    《深入理解Java虚拟机》(六)堆内存使用分析,垃圾收集器 GC 日志解读
    《深入理解Java虚拟机》(五)JVM调优
    《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具
  • 原文地址:https://www.cnblogs.com/Bobby0322/p/4056727.html
Copyright © 2011-2022 走看看