oracle中group关键字详解

原创 2004年08月27日 01:21:00

GROUP子句:(包括:ROLLUP,CUBE,GROUP BY GROUPING SET)

ROLLUP
--说明:每组增加一汇总行,将每组数据分组统计(常用AVG、SUM函数)

--实例:
SELECT DEPTNO,DECODE(JOB),SUM(SAL) FROM EMP
GROUP BY ROLLUP(DEPTNO,JOB);
--结果:


CUBE

--实例:
SELECT DECODE(GROUPING(department_name), 1, 'All Departments',
department_name) AS department_name,
DECODE(GROUPING(job_id), 1, 'All Jobs', job_id) AS job_id,
COUNT(*) "Total Empl", AVG(salary) * 12 "Average Sal"
FROM employees e, departments d
WHERE d.department_id = e.department_id
GROUP BY CUBE (department_name, job_id);

--结果:
DEPARTMENT_NAME  JOB_ID   Total Empl  Average Sal
------------------------------   ----------  ---------------------
Accounting   AC_ACCOUNT  1   99600
Accounting   AC_MGR   1  144000
Accounting   All Jobs  2   121800
Administration   AD_ASST  1   52800
.
.
.
All Departments  ST_MAN   5   87360
All Departments  All Jobs  107   77798.1308

GROUP BY GROUPING SET...

--说明:多条件汇总语句

--实例:
SELECT channel_desc, calendar_month_desc, co.country_id,
TO_CHAR(sum(amount_sold) , ’9,999,999,999’) SALES$
FROM sales, customers, times, channels, countries co
WHERE sales.time_id=times.time_id
AND sales.cust_id=customers.cust_id
AND sales.channel_id= channels.channel_id
AND customers.country_id = co.country_id
AND channels.channel_desc IN (’Direct Sales’, ’Internet’)
AND times.calendar_month_desc IN (’2000-09’, ’2000-10’)
AND co.country_id IN (’UK’, ’US’)
GROUP BY GROUPING SETS(
(channel_desc, calendar_month_desc, co.country_id),
(channel_desc, co.country_id),
( calendar_month_desc, co.country_id) );

--结果:
CHANNEL_DESC  CALENDAR  CO  SALES$
-------------------- -------- -- --------------
Direct Sales  2000-09  UK  1,378,126
Direct Sales 2000-10  UK 1,388,051
Direct Sales  2000-09  US  2,835,557
Direct Sales  2000-10  US  2,908,706
Internet  2000-09  UK  911,739
Internet 2000-10  UK  876,571
Internet  2000-09  US  1,732,240
Internet  2000-10  US  1,893,753
Direct Sales    UK  2,766,177
Direct Sales    US  5,744,263
Internet    UK  1,788,310
Internet    US  3,625,993
  2000-09  UK  2,289,865
  2000-09  US  4,567,797
  2000-10  UK  2,264,622
  2000-10  US  4,802,459
--注:1-8行,9-12行,13-16行分别是对应着三个汇总条件。

oracle未找到要求的from关键字,什么问题?

oracle未找到要求的from关键字,什么问题? 问题还原: select t.money as 经济收入/万 from salary t  select t.money as 经济收入(万)...
  • Ideality_hunter
  • Ideality_hunter
  • 2017-08-25 13:24:02
  • 295

oracle-where,group by,having order by 详细使用方法

1. Group By 语句简介: Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对...
  • cflulu
  • cflulu
  • 2016-12-14 22:42:51
  • 1672

Oracle 中关键字 ‘exists‘ 与 ‘in’ 详解

IN(list) 和 NOT IN(list) 等于列表其一和不等于列表其一,IN(list) 还常用于判断一个子查询的结果集; EXISTS(): 用在where中作为过滤条件,其后跟一个子查询,只...
  • u013709087
  • u013709087
  • 2017-06-05 18:21:19
  • 730

oracle level关键字

level 和 connect by ,start with 合在一起,一般是用来实现递归(树)查询。 connect by 子句定义表中的数据是如何相互联系的  start with 子句定义树查询...
  • wxwpxh
  • wxwpxh
  • 2016-01-17 16:56:23
  • 3846

Oracle数据库的关键字

在Oracle数据库中有很多关键字,在建表时如果用这些关键字来作为字段的话会造成建表失败,有个解决方法就是在关键字上加上英文双引号(记住,不是单引号,MySQL里面关键字就用单引号,oracle不一样...
  • u010004317
  • u010004317
  • 2015-05-15 13:54:23
  • 818

oracle分析函数over partition by 和group by的区别

http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html partition by的用法
  • Yuli_li
  • Yuli_li
  • 2016-06-24 14:51:11
  • 6552

oracle 分组函数与group by正确用法详解与详细解释

oracle数据库 分组函数与group by正确用法详解与详细解释 1.查询时同时查询了分组函数列和非分组函数列就需要使用group by,但是仅仅查询分组函数列可以不结合group by使用...
  • m0_37857602
  • m0_37857602
  • 2017-08-31 17:01:31
  • 1037

Oracle列转行函数 Listagg() 语法详解及应用实例

工作中用到一段比较复杂的SQL查询脚本,使用了listagg()函数实现了具有多个值的字段的填充(即,列表聚合,list aggregation(我猜的))。说简单点,listagg()函数可以实现多...
  • hpdlzu80100
  • hpdlzu80100
  • 2017-01-03 22:16:54
  • 10019

oracle中的having ,group by ,where之间联系与区别

having子句与where有相似之处但也有区别,都是设定条件的语句。 在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行.而where子句在查询过程中执...
  • gao454917848
  • gao454917848
  • 2014-06-21 08:36:06
  • 1989

oracle与mysql group by区别

select id,name from table group by zuming :mysql可以实现 select id,name,zuming from table group by zumi...
  • qq_30938097
  • qq_30938097
  • 2017-09-21 16:49:57
  • 156
收藏助手
不良信息举报
您举报文章:oracle中group关键字详解
举报原因:
原因补充:

(最多只允许输入30个字)