`
fxyc
  • 浏览: 121614 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Teradata中ROLLUP和GROUPING的使用

 
阅读更多

例如:

SELECT 	department_number
	,SUM(salary_amount)
FROM employee
WHERE department_number < 402
GROUP BY ROLLUP (department_number)
ORDER BY 1;

 结果如下:

department_number  Sum(salary_amount)
-----------------------------  ------------------------------
               	   ?             	591925.00
              	100           	100000.00
              	201           	  73450.00
              	301           	116400.00
              	302            	  56500.00
              	401           	245575.00

 产生了一个department_number 为null的汇总记录。

2,为了区分那个是汇总那个是空值,我们可以根据下面的例子来做。

SELECT 
    CASE GROUPING (department_number) WHEN 1 THEN 'Total' ELSE department_number END AS Deptno
    ,SUM(salary_amount)
FROM employee
GROUP BY ROLLUP (department_number)
ORDER BY 1;

 结果如下:

  Deptno                     Sum(salary_amount)
   -----------              ------------------------------
          ?                  	                 60000.00
        100                         	100000.00
        201                       	  73450.00
        301                         	116400.00
        302                  	  56500.00
        401                         	245575.00
        402                  	  77000.00
        403                                  233000.00
        501                                  200125.00
       Total                                1162050.00

 综合运用

SELECT CASE GROUPING (department_number) WHEN 1 THEN 'Total Depts' 
	ELSE (COALESCE (department_number,'Null Dept') ) END AS Deptno
	,CASE GROUPING (job_code) WHEN 1 THEN 'All Job Codes' 
	ELSE (COALESCE (job_code,'Null Job Code') ) END AS job_code
	,SUM(salary_amount)
FROM employee
GROUP BY ROLLUP (department_number,job_code)
ORDER BY 1,2;

 结果如下

Deptno   	                   job_code   	   Sum(salary_amount) 
----------------  	-------------------  	 -----------------------------
403 		    431100 	            31200.00
403 		    432101 	            201800.00
403 	                All Job Codes                       233000.00
501 		    511100 	            66000.00
501 		    512101 	            134125.00
501 	                All Job Codes 	            200125.00
Null Dept 		All Job Codes 	            60000.00
Null Dept 		Null Job Code 	           60000.00
Total Depts 	All Job Codes 	           1162050.00

 生成逐层汇总的效果,很想CUBE吧,哈哈。

分享到:
评论

相关推荐

    teradata14版本数据库下载

    综上所述,Teradata 14 版本是一款功能强大的企业级数据库管理系统,不仅具备优秀的性能和扩展能力,还提供了丰富的管理和开发工具。通过以上指南,希望能够帮助用户顺利完成下载和安装过程,并充分利用 Teradata 的...

    teradata数据库学习资料

    总的来说,这份压缩包中的资料提供了一个全面了解和学习Teradata的框架,从基础知识到高级优化,为有志于深入研究Teradata的人士提供了宝贵的资源。通过仔细阅读和实践,你将能够掌握Teradata的核心技能,从而在数据...

    Teradata初次使用指南

    - 在每个卸载过程中,选择删除所有当前和非当前版本,确认无误后继续。 - 完成卸载后,不要立即重启Windows,直到所有组件卸载完毕再统一重启。 #### 安装BYNET驱动与Teradata V2R6.0 1. **下载BYNET驱动**:访问...

    TeraData 驱动+乱码处理

    在IT行业中,数据库管理系统是数据存储和管理的核心工具,而TeraData作为一款高性能的并行数据库系统,广泛应用于大型企业级应用。然而,在与TeraData交互时,可能会遇到字符编码问题,导致中文乱码。本文将详细介绍...

    Teradata语法迁移到elk

    例如,在Teradata中可以使用DATEFORMAT来格式化日期数据,而在ELK中,我们可以通过Elasticsearch的mapping和date formatter来定义和转换日期格式。 4. 模式对象:Teradata提供了创建、操作表、列存表、索引、视图等...

    teradata jdbc最新和老驱动打包

    Teradata JDBC驱动是连接Teradata数据库的...总之,Teradata JDBC驱动是Java开发者与Teradata数据库交互的重要工具,不同版本的驱动满足不同需求,正确配置和使用这些驱动是高效开发和稳定运行Java数据库应用的基础。

    Teradata基础知识(绝对中文)

    Teradata基础知识是数据库管理和分析领域的...本教程的附录部分包含了客户端/服务器结构下的Teradata数据库介绍,ODBC驱动程序设置,Queryman和WinDDI等工具的使用指南,为读者提供了进一步学习和实践Teradata的资源。

    teradata-sql-Basic-tutorial.zip_Teradata 教程_teradata

    这个“Teradata SQL基础教程”涵盖了SQL在Teradata环境中的基本概念和操作,对于初学者或是希望深入理解Teradata SQL的人来说是一份宝贵的资源。 SQL(结构化查询语言)是用于管理关系数据库的标准编程语言。在...

    Teradata sql 说明书

    Teradata SQL是Teradata数据库系统中的查询和数据...理解和掌握这些知识点,将有助于你在实际工作中更有效地使用Teradata数据库系统。通过学习“SQL LEVEL(ALL).pdf”文档,你将能够深入理解并熟练应用这些概念和技巧。

    TERADATA 连接JAVA所需jar

    Teradata是一种大型分布式数据库管理系统,广泛用于企业级的数据仓库和数据...正确理解和使用tdgssconfig.jar、terajdbc4.jar和tdgssjava.jar,将使你能够构建高效、安全的Java应用程序,充分利用Teradata的强大功能。

    Teradata_Basic_中英文对照版(整理版)

    通过学习如何在Teradata中使用这些键,可以更高效地管理和维护复杂的关系型数据结构。 ### RDBMS 组件及其功能 Teradata RDBMS 由多个关键组件构成,这些组件共同协作以实现高效的数据存储和处理。主要包括: - *...

    Teradata QueryGrid Teradata16.1 Database-to-Hadoop3.xPDF

    在描述“Teradata QueryGrid Teradata16.1 Database-to-Hadoop3.x”中,我们可能期望这份文档详细阐述了如何配置和使用Teradata QueryGrid在Teradata 16.1和Hadoop 3.x之间的连接。可能的内容包括安装指南、配置步骤...

    teradata fastload英文版

    该文档描述了Teradata FastLoad产品的功能和使用方法。 3. 文件内容列出了一系列商标和注册商标。这些商标通常用于标识产品、服务和公司。例如,“Teradata”、“Active Enterprise Intelligence”、“Teradata ...

    TERADATA、ORACLE数据库分页

    在TERADATA中,进行分页查询主要通过使用`TOP`或`LIMIT`关键字,配合`ORDER BY`来实现。例如,如果我们想获取前10条记录,可以使用如下SQL语句: ```sql SELECT * FROM 表名 ORDER BY 排序字段 LIMIT 10; ``` 如果...

    MySQL、Teradata和PySpark代码互转表和数据转换代码.docx

    - 对于Teradata,可以使用`teradata-connector`等第三方库在PySpark中实现连接和数据操作。 6. **注意点**: - 数据类型转换:不同系统之间的数据类型可能不完全匹配,需要进行相应的转换。 - 分区和桶:...

    Teradata数据库的架构组成

    Teradata数据库是一个大规模并行处理(MPP)系统,其架构设计基于Shared Nothing原则,这意味着每个节点都拥有独立的计算和...由于其强大的并行处理能力,Teradata在商业智能、数据分析和大数据解决方案中广泛应用。

    teradata教程

    学习Teradata,理解SQL在Teradata环境中的特性和优化策略至关重要。 4. **分区技术**: Teradata使用分区技术来管理大数据,通过将大表分割成小块,可以提高查询效率。常见的分区方式有范围分区、列表分区、散列...

    Teradata 数据仓库基础

    - **TERADATA中的用户与数据库**:介绍Teradata中的用户和数据库管理方式。 - **TERADATA数据库的层次型结构**:描述Teradata数据库的组织结构。 - **拥有者(OWNER)与创建者(CREATOR)**:解释OWNER和CREATOR在数据库...

Global site tag (gtag.js) - Google Analytics