sql CUBE

CUBE   运算符生成的结果集是多维数据集。多维数据集是事实数据的扩展,事实数据即记录个别事件的数据。扩展建立在用户打算分析的列上。这些列被称为维。多维数据集是一个结果集,其中包含了各维度的所有可能组合的交叉表格。  
   
  CUBE   运算符在   SELECT   语句的   GROUP   BY   子句中指定。该语句的选择列表应包含维度列和聚合函数表达式。GROUP   BY   应指定维度列和关键字   WITH   CUBE。结果集将包含维度列中各值的所有可能组合,以及与这些维度值组合相匹配的基础行中的聚合值。  
   
  例如,一个简单的表   Inventory   中包含:  
   
  Item                                   Color                                 Quantity                                        
  --------------------   --------------------   --------------------------    
  Table                                 Blue                                   124                                                  
  Table                                 Red                                     223                                                  
  Chair                                 Blue                                   101                                                  
  Chair                                 Red                                     210                                                  
   
  下列查询返回的结果集中,将包含   Item   和   Color   的所有可能组合的   Quantity   小计:  
   
  SELECT   Item,   Color,   SUM(Quantity)   AS   QtySum  
  FROM   Inventory  
  GROUP   BY   Item,   Color   WITH   CUBE  
   
  下面是结果集:  
   
  Item                                   Color                                 QtySum                                            
  --------------------   --------------------   --------------------------    
  Chair                                 Blue                                   101.00                                            
  Chair                                 Red                                     210.00                                            
  Chair                                 (null)                               311.00                                            
  Table                                 Blue                                   124.00                                            
  Table                                 Red                                     223.00                                            
  Table                                 (null)                               347.00                                            
  (null)                               (null)                               658.00                                            
  (null)                               Blue                                   225.00                                            
  (null)                               Red                                     433.00                                            
   
  我们着重考查下列各行:  
   
  Chair                                 (null)                               311.00                                            
   
  这一行报告了   Item   维度中值为   Chair   的所有行的小计。对   Color   维度返回了   NULL   值,表示该行所报告的聚合包括   Color   维度为任意值的行。  
   
  Table                                 (null)                               347.00                                            
   
  这一行类似,但报告的是   Item   维度中值为   Table   的所有行的小计。  
   
  (null)                               (null)                               658.00                                            
   
  这一行报告了多维数据集的总计。Item   和   Color   维度的值都是   NULL,表示两个维度中的所有值都汇总在该行中。  
   
  (null)                               Blue                                   225.00                                            
  (null)                               Red                                     433.00                                            
   
  这两行报告了   Color   维度的小计。两行中的   Item   维度值都是   NULL,表示聚合数据来自   Item   维度为任意值的行。  
posted @ 2009-07-02 10:43  b2cnet  阅读(166)  评论(0编辑  收藏  举报