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 输入列的值。

  • 相关阅读:
    Spring AOP实现方式一【附源码】
    Java-Swing嵌入浏览器(二)
    Java-Swing嵌入浏览器(一)
    JAVA实现word doc docx pdf excel的在线浏览
    湿空气性质计算,随笔与学习记录(合订)
    湿空气性质计算,随笔与学习记录 (5.空气比焓)
    湿空气性质计算,随笔与学习记录 (4.空气比容,空气密度)
    湿空气性质计算,随笔与学习记录 (3.露点温度,绝对湿度)
    湿空气性质计算,随笔与学习记录(2.水蒸气分压,含湿量,相对湿度)
    湿空气性质计算,随笔与学习记录(1.饱和水蒸气压力计算)
  • 原文地址:https://www.cnblogs.com/Bobby0322/p/4056727.html
Copyright © 2011-2022 走看看