oracle group 语句探究(笔记)
1、group by语句在oracle中没有排序功能,必须依靠order by才能实现按照预定结果的排序
2、group by 的cube扩展
with test as
(
select 1 id,2 name from dual
)
select id,name from test group by cube(id,name); 输出结果为
id name
null null
1 null
null 2
1 2
由此不难看出group by cube的作用是把null引入做一个笛卡尔积,最终显示出来,在有些情况下用起来非常的方便,在某些情况下可以替代union all,极高的提升效率。其中在数据量比较多的情况下,全空列只出现一次
3、grouping()函数
grouping() 与cube一起使用,用来判断这个值是不是聚合产生的null值,如果是返回1,不是返回零
with test as
(
select 1 id,2 name from dual
)
select id,name from test
group by cube(id,name)
having grouping(id)=1; 输出结果为
id name
null null
null 2 with test as
(
select 1 id,2 name from dual
)
select id,name from test
group by cube(id,name)
having grouping(id)=0; 输出结果为
id name
1 null
1 2
4、grouping_id()函数
grouping_id()在某种程度上与grouping()相似,不同的在于grouping()计算一个表达式返回0或1,而group_id()计算一个表达式,确定其参数中的哪一行被用来生成超聚合行,然后常见一个矢量,并将该值作为整型值返回
with test as
(
select 1 id,2 name from dual
),
cuded as(
select
grouping_id(id,name) gid,
to_char(grouping(id)) id_1,
to_char(grouping(name)) name_1,
decode(grouping(id),1,' id 1') id_2,
decode(grouping(name),1,' name 2') name_2
from test
group by cube(id,name)
)
select
gid,id_1||name_1 dn,id_2,name_2
from
cuded; 结果为:
gid dn id_2 name_2
0 00
1 01 name 2
2 10 id 1
3 11 id 1 name 2
oracle group 语句探究(笔记)的更多相关文章
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
- 45 个非常有用的 Oracle 查询语句
这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有 Oracle 开发者都必备的技能,所以快 ...
- Oracle sql语句执行顺序
sql语法的分析是从右到左 一.sql语句的执行步骤: 1)词法分析,词法分析阶段是编译过程的第一个阶段.这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构 ...
- Oracle Update 语句语法与性能分析 - 多表关联
Oracle Update 语句语法与性能分析 - 多表关联 为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在某个业务受理子系统BSS中, SQL 代码 --客户资料表 create ...
- oracle group by中cube和rollup字句的使用方法及区别
oracle group by中rollup和cube的区别: Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句. 如果是ROLLUP(A, B, C)的话,先 ...
- 常用的Oracle数据库语句 (待更新完毕)
一.常用的查询语句 1.1 常用查询 查表中有多少个字段 select count(*) from user_tab_columns where table_name=upper('表名') 或者 s ...
- 40多个非常有用的Oracle 查询语句
给大家介绍是40多个非常有用的Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有Oracle 开发者都必备的技能,所以快快收藏吧! 日期 ...
- MS SQL到Oracle的数据迁移笔记
MS SQL到Oracle的数据迁移笔记 一.任务背景 旧系统使用MS SQL Server数据库,新系统使用Oracle数据库,现在需要将旧系统中的数据迁移到新系统中,旧数据按照约定的规则转换后,能 ...
- 45个非常有用的 Oracle 查询语句小结
45个非常有用的 Oracle 查询语句小结 这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有 ...
随机推荐
- 【LeetCode】3.Longest Substring Without Repeating Characters 最长无重复子串
题目: Given a string, find the length of the longest substring without repeating characters. Examples: ...
- 【测试】在hr用户下自行创建T1和T2表写一条SQL语句,(NL连接)
SQL> select t1.* from t1,t2 where t1.object_id=t2.object_id; rows selected. Execution Plan ------ ...
- 多线程(三)GCD
一.GCD GCD:Grand Central Dispatch,宏大的中央调度!!!是苹果为多核的并行运算提出的解决方案,会自动合理地利用更多的CPU内核(比如双核.四核), GCD的底层依然是用线 ...
- socket学习笔记——IO口的基本操作(读、写)
写操作 1 #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unist ...
- 洛谷P1206 [USACO1.2]回文平方数 Palindromic Squares
P1206 [USACO1.2]回文平方数 Palindromic Squares 271通过 501提交 题目提供者该用户不存在 标签USACO 难度普及- 提交 讨论 题解 最新讨论 暂时没有 ...
- javascript设计模式-外观模式
也可译为门面模式.它为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.引入外观角色之后,使用者只需要直接与外观角色交互,使用者与子系统之 ...
- 【HTML/XML 7】CSS层叠样式表
导读:上篇博客说到用XSL去实现XML文档的表现形式的美化,那么另外一种方式就是CSS的使用.本篇博客系统的介绍CSS,下篇博客,将系统的介绍XSL. 一.CSS的发展历史 1996年,层叠样式表(C ...
- hql语句关联查询(select new )
在 new bean()中,对象里要有其构造方法,查询参数必须是构造方法中的参数,get set也要同步 类似于 String hql= "select new A(a.id, a.na ...
- 开源项目:X265
1 Windows下编译X265 具体的编译环境: Windows 7(64bit) + Visual Stdio 2010 + Cmake 3.4.3 + vsyasm-1.3.0-win64 a. ...
- .net读取ini配置文件的操作
#region 读取和写入ini文件的操作 string inipath = System.Windows.Forms.Application.StartupPath + @"\conf ...