SQL汇总统计与CUBE概念

SQL汇总统计(Group by, ROLLUP, CUBE)与CUBE概念

  • 第一层:GROUP BY】将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。

    SELECT 性别, COUNT(学号) AS 数量  
    FROM STUDENT
    GROUP BY 性别

  • 第二层:GROUP BY】+【WITH ROLLUP】ROLLUP计算了指定分组(就是汇总的维度)的多个层次的数量小计以及合计,先逐步创建高一级别的小计,最后再创建一行总计。整体结果都是以【性别】这一层次进行数据聚合(这也是与CUBE的不同之处)。

    --语句1 只用了【性别】一个维度进行汇总
    SELECT 性别,  COUNT(学号) AS 数量
    FROM STUDENT
    GROUP BY 性别 WITH ROLLUP
    
    --语句2 用了【性别】和【籍贯】两个维度进行汇总
    SELECT 性别, 籍贯, COUNT(学号) AS 数量
    FROM STUDENT
    GROUP BY 性别, 籍贯 WITH ROLLUP
    
    --语句3 用了【性别】、【籍贯】、【年龄】三个维度进行汇总
    SELECT 性别, 籍贯, 年龄, COUNT(学号) AS 数量
    FROM STUDENT
    GROUP BY 性别, 籍贯, 年龄 WITH ROLLUP

  • 第三层:GROUP BY】+【WITH CUBE】CUBE生成的结果是个多维数据集,就是包含各个维度的所有可能组合的交叉表格。

--语句只用了【性别】和【籍贯】两个维度进行汇总
SELECT 性别, 籍贯,  COUNT(学号) AS 数量
FROM STUDENT
GROUP BY 性别, 籍贯 WITH CUBE

1-1 Cube 概念

在 Bi 领域,Cube 是一个非常重要的概念,是多维立方体的简称,主要是用于支持联机分析应用(OLAP)(On-Line Analytical Processing), 为企业决策提供支持。Cube 就像一个坐标系,每一个 Dimension 代表一个坐标轴,要想得到一个一个点,就必须在每一个坐标轴上取得一个值,而这个点就是 Cube 中的 Cell

clipboard.png

1-2 Cube 介绍

Cube是联机分析的关键。他们是一种多维结构,包含原始事实数据、聚合数据,这些数据聚合允许用户快速进行复杂的查询。

Cube包含两个基本概念:维度度量。

维度(Dimension):维度提供了分类描述,表示一类分析角度,用户通过维度分析度量数据。比如上图中的三个维度:时间、产品、地域

度量(Measures):度量表示用来聚合分析的数字信息,度量的集合组合成了一个特殊的维度。如数量、销售额等。

级别(Level):一个维度上可以包含的层次结构,表示特定的分类。如上图中地域维度可以包含的级别层次级:国家、省、市;时间维度包含的级别层次包含:年、季度、月、日等。

成员:是最重要的概念之一,一个成员是维度(包括度量<Measures>)上的项目值。如上图时间维度上”年“级别的成员就包含:2000,2001,2002,2003...月成员包含:1、2、3等。

计算成员:是一种运行通过特殊表示式动态计算的成员。也就形成了度量(Measures)的结果。计算成员不影响现有的Cube数据,它基于cube数据,通过各种数学表达式和各种函数定义,可以创建复杂的表达式。任何动态分析功能,都可以通过计算成员实现,比如实现占比,同期比等等。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值