ROLLUP & CUBE

简介: 一、RULLUP group by后带rollup子句的功能可以理解为:先按一定的规则产生多种分组,然后按各种分组统计数据。 因此要搞懂group by后带rollup子句的用法主要是搞懂它是如何按一定的规则产生多种分组的。

一、RULLUP

group by后带rollup子句的功能可以理解为:先按一定的规则产生多种分组,然后按各种分组统计数据。
因此要搞懂group by后带rollup子句的用法主要是搞懂它是如何按一定的规则产生多种分组的。另group by后带rollup子句所返回的结果集,可以理解为各个分组所产生的结果集的并集且没有去掉重复数据。
1、Group by A ,B
    a) 产生的分组种数:1种;
         即group by A,B
    b) 返回结果集:也就是这一种分组的结果集。 
2、Group by rollup(A ,B) 
    a) 产生的分组种数:3种; 
        第一种:group by A,B
        第二种:group by A
        第三种:group by NULL
            含义是:没有分组,也就是所有数据做一个统计。
    b) 返回结果集:为以上三种分组统计结果集的并集且未去掉重复数据。
3、Group by rollup(A ,B,C) 
    a) 产生的分组种数:4种;
        第一种:group by A,B,C
        第二种:group by A,B
        第三种:group by A
        第四种:group by NULL
    b) 返回结果集:为以上四种分组统计结果集的并集且未去掉重复数据。
4、Group by A , rollup(A ,B) 
    a) 产生的分组种数:3种;
        第一种:group by A,A,B    等价于group by A,B
        第二种:group by A,A      等价于group by A
        第三种:group by A,NULL  等价于group by A
    b) 返回结果集:为以上三种分组统计结果集的并集且未去掉重复数据。
5、Group by C , rollup(A ,B) 
    a) 产生的分组种数:3种;
        第一种:group by C,A,B
        第二种:group by C,A
        第三种:group by C,NULL  等价于group by C
    b) 返回结果集:为以上三种分组统计结果集的并集且未去掉重复数据。
6、Group by rollup((A ,B)) 
    a) 产生的分组种数:2种;
        第一种:group by A,B
        第二种:group by NULL
    b) 返回结果集:为以上两种分组统计结果集的并集且未去掉重复数据。
7、Group by rollup(A ,(B,C)) 
    a) 产生的分组种数:3种;
        第一种:group by A,B,C
        第二种:group by A 
        第三种:group by NULL
    b) 返回结果集:为以上三种分组统计结果集的并集且未去掉重复数据。

二、CUBE

带cube子句的group by会产生更多的分组统计数据。cube后的列有多少种组合(注意组合是与顺序无关的)就会有多少种分组。 
Group by cube(A ,B,C) 
1、产生的分组种数:8种;
    第一种:group by A,B,C
    第二种:group by A,B 
    第三种:group by A,C
    第四种:group by B,C
    第五种:group by C 
    第六种:group by B 
    第七种:group by A 
    第八种:group by NULL
2、返回结果集:为以上八种分组统计结果集的并集且未去掉重复数据。
目录
相关文章
|
2月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
务必记得,在进行任何生产环境部署之前,在隔离环境中测试所有更改,并备份所有关键数据和配置信息以便于灾难恢复时能够能迅速采取措施。
146 8
|
安全 Linux 测试技术
OpenText Static Application Security Testing (Fortify) 25.3 (macOS, Linux, Windows) - 静态应用安全测试
OpenText Static Application Security Testing (Fortify) 25.3 (macOS, Linux, Windows) - 静态应用安全测试
214 0
|
9月前
|
机器学习/深度学习 人工智能 缓存
探秘 DeepSeek:那些你必须了解的事
DeepSeek是一家由中国幻方量化支持的创新型AI公司,专注于开发高性能、低成本的大语言模型。其独特的技术路径打破了参数规模、能耗成本和认知可靠性之间的“三元悖论”,实现了在单张显卡上运行170亿参数模型的突破。DeepSeek通过开源策略和高性价比模型(如DeepSeek-R1),大幅降低了AI应用门槛,推动了全球开发者社区的发展。其应用场景广泛覆盖教育、医疗、金融等领域,显著提升了工作效率和服务质量。DeepSeek的成功不仅在于技术创新,更在于其开放合作的理念,正引领AI行业的新变革。
1481 9
探秘 DeepSeek:那些你必须了解的事
|
jenkins Java 持续交付
运用Jenkins实现Java项目的持续集成与自动化部署
在新建的Jenkins Job中,我们需要配置源码管理,通常选择Git、SVN等版本控制系统,并填入仓库地址和凭据。接着,设置构建触发器,如定时构建、轮询SCM变更、GitHub Webhook等方式,以便在代码提交后自动触发构建过程。
506 2
|
弹性计算 缓存 安全
阿里云服务器ECS收费标准参考,2核4G配置ECS实例规格整理
阿里云提供多种2核4G ECS实例,如计算型c7、经济型e、u1等,价格不等,从68.0元/月到203.0元/月。ECS通用算力型u1实例采用高性能Intel处理器,网络收发包能力达30万PPS。经济型e实例基于Intel Xeon Platinum,适合入门级需求。2核4G服务器支持的并发访问人数依赖于软件效率、带宽、应用架构和用户行为等因素。更多信息请查看阿里云ECS产品页。
577 1
|
机器学习/深度学习 数据采集 人工智能
函数式编程的实际应用
【10月更文挑战第12天】 函数式编程作为一种编程范式,在数据处理、金融、科学计算、Web 开发、游戏开发、物联网、人工智能等多个领域有着广泛应用。本文通过具体案例,详细介绍了函数式编程在这些领域的实际应用,展示了其在提高效率、确保准确性、增强可维护性等方面的显著优势。
828 60
|
9月前
|
人工智能 监控 Java
谷歌放弃AI武器禁令——这对AI的未来意味着什么
谷歌放弃AI武器禁令——这对AI的未来意味着什么
|
11月前
|
供应链 数据可视化 数据挖掘
企业服务品牌深度解析:销售易、用友、白码功能与特色对比
在企业服务领域,销售易、用友、白码等品牌凭借独特的产品和解决方案占据重要地位。销售易专注于CRM,提供客户管理、销售自动化、市场营销等功能,提升销售效率与客户满意度。用友作为领先的企业服务提供商,涵盖ERP、财务管理、人力资源管理等,助力企业资源优化配置。白码则以低代码开发平台为核心,支持快速构建业务应用,具备高度可定制化和易于维护的特点。三者各具特色,共同推动企业数字化转型。
|
机器人 Python
ROS2教程 03 节点Node
本文是关于ROS2(机器人操作系统2)的教程,介绍了ROS2的节点概念、与ROS1的区别、节点的编写和基本流程、ros2的node相关命令,以及如何对节点名进行重映射,旨在帮助读者理解ROS2中节点的创建和操作。
491 0
ROS2教程 03 节点Node
|
Java 应用服务中间件 Windows
2022年最新最详细的tomcat安装教程和常见问的解决
这篇文章提供了2022年最新最详细的Tomcat安装教程,包括离线安装包的获取、官网下载步骤、JDK版本检查、环境变量配置,以及解决安装过程中可能遇到的常见问题,如乱码等。
2022年最新最详细的tomcat安装教程和常见问的解决