维度是分类的有组织的层次结构,称为级别,它描述数据仓库事实数据表中的数据。维度一般描述一个成员的相似集合,用户将基于该集合进行分析,并且维度是多维数据集的基本组件

解决方案 »

  1.   

    多维数据集
    CUBE 运算符可用于生成 n 维的多维数据集,即具有任意数目维度的多维数据集。只有一个维度的多维数据集可用于生成合计,例如:SELECT CASE WHEN (GROUPING(Item) = 1) THEN 'ALL'
                ELSE ISNULL(Item, 'UNKNOWN')
           END AS Item,
           SUM(Quantity) AS QtySum
    FROM Inventory
    GROUP BY Item WITH CUBE
    GO此 SELECT 语句返回的结果集既显示了 Item 中每个值的小计,也显示了 Item 中所有值的总计:Item                 QtySum                     
    -------------------- -------------------------- 
    Chair                311.00                     
    Table                347.00                     
    ALL                  658.00                     包含带有许多维度的 CUBE 的 SELECT 语句可能生成很大的结果集,因为这些语句会为所有维度中值的所有组合生成行。这些大结果集包含的数据可能过多而不易于阅读和理解。这个问题有一种解决办法是将 SELECT 语句放在视图中:CREATE VIEW InvCube AS
    SELECT CASE WHEN (GROUPING(Item) = 1) THEN 'ALL'
                ELSE ISNULL(Item, 'UNKNOWN')
           END AS Item,
           CASE WHEN (GROUPING(Color) = 1) THEN 'ALL'
                ELSE ISNULL(Color, 'UNKNOWN')
           END AS Color,
           SUM(Quantity) AS QtySum
    FROM Inventory
    GROUP BY Item, Color WITH CUBE然后即可用该视图来只查询您感兴趣的维度值:SELECT *
    FROM InvCube
    WHERE Item = 'Chair'
      AND Color = 'ALL'Item                 Color                QtySum                     
    -------------------- -------------------- -------------------------- 
    Chair                ALL                  311.00                     (1 row(s) affected)