- 浏览: 882971 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (509)
- android (55)
- CSS (23)
- eclipse (25)
- Data Structes and Algorithms (53)
- J2SE (87)
- Java_面试学习_j2se (26)
- java_面试学习_非技术 (13)
- java_gui (2)
- java_设计模式 (27)
- JDBC (10)
- java_web (15)
- hibernate (5)
- Oracle (37)
- Struts2 (7)
- Word-----dos (24)
- Jbpm (3)
- java小技巧 (8)
- math (1)
- flex (12)
- WebService (4)
- 生活 (9)
- 小框架或小语言 (27)
- spring (1)
- 面试~~~软实力 (7)
- jstat的用法 (1)
- jmap (1)
- 数据链路层和传输层的流量控制区别 (1)
- shell (0)
- 财商 (1)
- javascript (0)
- js研究 (1)
- 代码收集 (0)
最新评论
-
海尔群:
http://jingyan.baidu.com/articl ...
android加密 -
完美天龙:
------------------------- ...
asm----字节码操纵 -
houniao1990:
大神,请问 string 类型 定义为 oracle的 cha ...
hibernate注解 -
JamesQian:
Line:103
f.doFilter(msg);
是否需 ...
责任链模式_过滤器模式 -
sacoole:
好评
interview--- 如何从N个数中选出最大(小)的n个数?
GROUPING GROUPING函数可以接受一列,返回0或者1。如果列值为空,那么GROUPING()返回1;如果列值非空,那么返回0。GROUPING只能在使用ROLLUP或CUBE的查询中使用。当需要在返回空值的地方显示某个值时,GROUPING()就非常有用。 1、在ROLLUP中对单列使用GROUPING() SQL> select division_id,sum(salary) 2 from employees2 3 group by rollup(division_id) 4 order by division_id; DIV SUM(SALARY) --- ----------- BUS 1610000 OPE 1320000 SAL 4936000 SUP 1015000 8881000 加上GROUPING来看看 SQL> select grouping(division_id),division_id,sum(salary) 2 from employees2 3 group by rollup(division_id) 4 order by division_id; GROUPING(DIVISION_ID) DIV SUM(SALARY) --------------------- --- ----------- 0 BUS 1610000 0 OPE 1320000 0 SAL 4936000 0 SUP 1015000 1 8881000 可以看到,为空的地方返回1,非空的地方返回0。 2、使用CASE转换GROUPING()的返回值 可能你会觉得前面的0和1太枯燥了,代表不了任何意义,说白了就是不够人性化,呵呵。这个时候我们可以使用CASE来转换为一些有意义的值。 SQL> select 2 case grouping(division_id) 3 when 1 then 'all divisions' 4 else division_id 5 end as div, 6 sum(salary) 7 from employees2 8 group by rollup(division_id) 9 order by division_id; DIV SUM(SALARY) ------------- ----------- BUS 1610000 OPE 1320000 SAL 4936000 SUP 1015000 all divisions 8881000 3、使用CASE和GROUPING()转换多个列的值 SQL> select 2 case grouping(division_id) 3 when 1 then 'all divisions' 4 else division_id 5 end as div, 6 case grouping(job_id) 7 when 1 then 'all jobs' 8 else job_id 9 end as job, 10 sum(salary) 11 from employees2 12 group by rollup(division_id,job_id) 13 order by division_id,job_id; DIV JOB SUM(SALARY) ------------- -------- ----------- BUS MGR 530000 BUS PRE 800000 BUS WOR 280000 BUS all jobs 1610000 OPE ENG 245000 OPE MGR 805000 OPE WOR 270000 OPE all jobs 1320000 SAL MGR 4446000 SAL WOR 490000 SAL all jobs 4936000 DIV JOB SUM(SALARY) ------------- -------- ----------- SUP MGR 465000 SUP TEC 115000 SUP WOR 435000 SUP all jobs 1015000 all divisions all jobs 8881000 16 rows selected. 4、CUBE与GROUPING()结合使用 SQL> select 2 case grouping(division_id) 3 when 1 then 'all divisions' 4 else division_id 5 end as div, 6 case grouping(job_id) 7 when 1 then 'all jobs' 8 else job_id 9 end as job, 10 sum(salary) 11 from employees2 12 group by cube(division_id,job_id) 13 order by division_id,job_id; DIV JOB SUM(SALARY) ------------- -------- ----------- BUS MGR 530000 BUS PRE 800000 BUS WOR 280000 BUS all jobs 1610000 OPE ENG 245000 OPE MGR 805000 OPE WOR 270000 OPE all jobs 1320000 SAL MGR 4446000 SAL WOR 490000 SAL all jobs 4936000 DIV JOB SUM(SALARY) ------------- -------- ----------- SUP MGR 465000 SUP TEC 115000 SUP WOR 435000 SUP all jobs 1015000 all divisions ENG 245000 all divisions MGR 6246000 all divisions PRE 800000 all divisions TEC 115000 all divisions WOR 1475000 all divisions all jobs 8881000 21 rows selected. 5、使用GROUPING SETS子句 使用GROUPING SETS子句可以只返回小计记录。 SQL> select division_id,job_id,sum(salary) 2 from employees2 3 group by grouping sets(division_id,job_id) 4 order by division_id,job_id; DIV JOB SUM(SALARY) --- --- ----------- BUS 1610000 OPE 1320000 SAL 4936000 SUP 1015000 ENG 245000 MGR 6246000 PRE 800000 TEC 115000 WOR 1475000 9 rows selected.
发表评论
-
函数---merge
2011-06-25 10:37 3312/*Merge into 详细介绍 MERGE语句是Or ... -
函数---keep
2011-06-23 08:07 1124KEEP 看到很多人对于keep不理解,这里解释一下 ... -
函数---trunc,LEAST,COALESCE ,TRANSLATE,convert,REPLACE
2011-06-16 09:44 1146select trunc(sysdate,'DD') AA ... -
函数---to_char,RANK()和dense_rank(),rollup,cube
2011-06-16 07:53 1340TO_CHAR(<x> [,<fmt & ... -
oracle-----list,array
2011-06-12 18:47 1139定义 type idList_type is table ... -
oracle----触发器
2011-06-12 15:14 995这个触发器的作用是在插入role_info表的时候把rol ... -
oracle---包,游标
2011-06-11 20:40 1483游标就是一个指向内 ... -
函数---instr
2011-05-29 10:29 21421.instr 在Oracle/PLSQL中,instr函 ... -
oracle经典博文
2011-04-18 13:05 986http://www.itpub.net/viewthread ... -
oracle-----转换函数
2011-04-17 14:45 1220Oracle 中的 TO_DATE 和 TO_CHAR 函 ... -
sql-------not in 与not exists效率
2011-01-19 09:28 2159总结: not exists总比not in好, in在内 ... -
oracle----globle temp table
2010-12-01 17:56 1214在sybase中的存储过程可以写临时表,但是oracle不 ... -
oracle----函数收集
2010-11-30 16:38 1656日期函数 1.ADD_MONTHS( ... -
sybase----函数收集
2010-11-30 16:36 1175长度和语法分析 datalength(char_expr ... -
sybase----oracle ---函数转换
2010-11-30 16:31 1381比如: 1.select user_id,convert ... -
oracle----块编程
2010-11-30 15:17 17331.块的构成:---这里不 ... -
sybase---oracle2sybase procedure
2010-11-03 19:35 1093Oracle的存储过程 create or repl ... -
sybase---bcp
2010-11-03 19:31 2008bcp 数据库名..表名 in ... -
oracle---用户管理
2010-10-06 19:37 1521sys是超级管理员,他比s ... -
oracle---认证
2010-10-06 18:34 1074oca [oracle初级认证] ocp[oracle专家级 ...
相关推荐
### Greenplum中的Grouping Sets实现 #### Greenplum简介 Greenplum是Pivotal公司的一款基于MPP(Massively Parallel Processing)架构的数据仓库产品,它能够在大规模数据集上提供快速的数据分析能力。Greenplom...
在Oracle数据库中,`GROUPING` 和 `GROUPING_ID` 是两种非常有用的函数,它们能够帮助用户更好地理解和组织聚合查询的结果。这两种函数主要用于处理复杂的分组情况,尤其是在使用`ROLLUP` 或 `CUBE` 时更为显著。...
在Oracle数据库中,`GROUPING`函数被广泛应用于复杂的分组查询之中,尤其是在存储过程的开发中。本文将详细解释`GROUPING`函数的使用方法及其应用场景,并通过一个示例来帮助理解其工作原理。 #### 一、`GROUPING`...
### VB函数大全详解 #### Abs函数 - **功能**:返回数值的绝对值。 - **语法**:Abs(number) - `number`:任何有效数值表达式。 #### And运算符 - **功能**:执行两个表达式的逻辑与操作。 - **语法**:...
在7.7节“Extending Reports with GROUPING()”中,作者深入探讨了如何利用GROUPING函数来增强报告的功能性和灵活性。GROUPING函数在SQL中是一个非常重要的聚合函数,它主要用于处理分组数据,尤其是在进行多级分组...
CUBE的使用通常与聚合函数如SUM、COUNT、AVG等结合,以便对各个分组计算总计、平均值或计数。在业务智能和数据仓库领域,CUBE常常用于创建透视表,帮助用户快速比较不同维度下的指标。 在实际应用中,CUBE可能会...
`HAVING`子句在SQL查询中扮演着至关重要的角色,它用于在聚合函数的结果集上设置条件,这与`WHERE`子句有所不同。`WHERE`子句通常用于筛选原始数据行,而`HAVING`子句则作用于经过聚合后的结果。 在SQL查询中,当...
`GROUPING_ID`函数可以用来标识当前行属于哪个分组集,这对于解析结果集非常有用。 总的来说,`GROUP BY GROUPING SETS`在处理多维度分析时提供了强大的工具,允许我们定制汇总级别,同时保持查询性能的高效。它...
当我们需要更复杂的分组和汇总信息时,可以使用扩展的聚合功能,如ROLLUP、CUBE以及GROUPING()和GROUPING_ID()函数。这些功能允许我们生成多层次的总计和小计,为数据分析提供了极大的灵活性。 1. ROLLUP子句: ...
**GLG(Gray-Level Grouping)算法是一种在图像处理领域中用于图像增强的技术。它主要目的是改善图像的视觉效果,突出图像中的重要特征,增强对比度,或者减少噪声。GLG算法通过将图像的灰度级进行分组,然后对每个...
- 在`GROUP BY`语句中,聚合函数用于分组数据,如`GROUP BY GROUPING SETS ((column1), (column1, column2))`。 3. **自定义函数**: - 用户可以创建自己的函数,分为标量值函数、表值函数和聚合函数。 - `...
聚合函数是指对表中的数据进行聚合操作的函数,常用的聚合函数包括SUM、AVG、MAX、MIN、COUNT、GROUPING SETS 等。 二、类型转换函数 类型转换函数是指将一种数据类型转换为另一种数据类型的函数,DB2 为每种数据...
5. GROUPING 函数:对数据进行分组和汇总。 6. MAX 函数:返回数据集中的最大值。 7. MIN 函数:返回数据集中的最小值。 8. Regression 函数:计算线性回归方程。 9. STDDEV 函数:计算数据集的标准差。 10. SUM ...
- **定义**:`GROUPING` 函数用于确定查询结果中分组的状态。 - **用途**:在复杂的分组查询中帮助识别未分组的列。 - **语法示例**: ```sql SELECT column1, column2, GROUPING(column1), GROUPING(column2) ...
《Pro Oracle SQL》一书的第7章,7.6节专门讲解了如何使用GROUPING()函数来处理这个问题。GROUPING()函数是Oracle数据库提供的一种特殊函数,用于识别汇总结果中的NULL值,并且在分组操作中有着独特的应用。 NULL值...
- **GROUPING**: 与GROUP BY语句配合使用,帮助识别分组状态。 - **MAX** 和 **MIN**: 分别获取最大值和最小值。 - **SUM**: 计算总和,支持DISTINCT关键字以排除重复项。 - **STDEV** 和 **STDEVP**: 分别计算标准...
《Pro Oracle SQL》一书的第七章第7.8节主要探讨了如何通过GROUPING_ID()函数来扩展Oracle SQL报告的功能。GROUPING_ID()在数据分析和报表生成中扮演着重要角色,尤其在处理分组数据时,能提供更详细的分组信息。本...
通过这个"grouping-and-aggregating"教学演示,你将学习如何在Jupyter Notebook中有效地管理流数据,无论是对数据进行简单的统计分析,还是构建复杂的实时报表。实践中,你需要结合实际数据和业务需求,灵活运用这些...
`collect()`方法可以配合`Collectors`类中的静态方法来完成这些转换,如`Collectors.toList()`用于将Stream转换为列表,`Collectors.groupingBy()`用于根据指定条件进行分组。 此外,函数式编程中的高阶函数也是...
SQL Server 函数大合集 ...GROUPING 函数返回一个聚合函数,用于对数据进行分组操作。 这些函数都是 SQL Server 中常用的函数,用于对数据进行处理和分析。它们可以帮助用户快速地对数据进行处理,提高工作效率。