ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 聚集函数之cube

聚集函数之cube

原创 Linux操作系统 作者:pingley 时间:2012-04-04 14:24:28 0 删除 编辑
聚集函数之cube
oracle cube ,rollup,grouping sets 是三兄弟。cube 根据给定的列作为参数,计算出所有可能的聚合。语法格式:group by cube(a,b,c)
等同于group by grouping sets ((a,b,c),(a,b),(b,c),(a,c),(a),(b)(c),())
等同于group by a,b,c
          union
          group by a,b
          union
          group by b,c  
          union
          group by a,c
          union
          group by a
          union
          group by b
          union
          group by c
          union
最后是一个整体的聚集。
举个例子来说明比较,假如我要同时实现:
1、查询每个部门每类工作的平均,最大,最小工资。
2、查询每个部门的平均工资平均,最大,最小工资。
3、查询每类工作平均,最大,最小工资。
4、整个公司(employees 表)的平均,最大,最小工资。
一、使用一条select 语句通过 cube 聚集函数实现的。
二、使用一条select 语句通过转换成对等的grouping sets 函数实现的。
三、通过转换成多条select 语句 通过union 实现的。
注:在输出结果中
1、department_id,job_id 不为空的对应,每个部门每类工作的
平均,最大,最小工资。
2、只有job_id 为空的对应,每个部门的平均工资平均,最大,
最小工资。
3、只有department_id 为空的对应,每类工作平均,最大,
最小工资。
4、department_id,job_id 都为空的对应,整个公司(employees 表)的平均,最大,最小工资。

1.JPG

3.JPG

4.JPG

5.JPG

6.JPG

2.JPG

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-720302/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    169
  • 访问量
    717427