Oracle分析函数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Miles GZ 18
Collion 19 -- 经理Collion总销售额
Collion GZ 18
Collion SH 1
Collion 19
JT SH 9
Kevin 19 -- 经理Kevin总销售额
/
insert into test_sales values('SH',7,9,'Kevin',sysdate);
/
insert into test_sales values('SH',5,1,'JT',sysdate);
/
insert into test_sales values('GZ',6,9,'JT',sysdate);
GZ 45 -- GZ 地区销售额
SH 29 -- SH 地区销售额
JT SH 9
JT 18
Kevin SH 19
/
insert into test_sales values('GZ',7,9,'Collion',sysdate);
/
1.查询总销售额,地区销售额和各经理销售情况
solution 1 -- cube()
select manager,location_name,sum(sales) from test_sales
74
2. 查询各经理销售情况 即指定分组
solution 1-- grouping sets()
select manager,location_name,sum(sales) from test_sales
JT SH 9
JT 18
Kevin SH 19
Collion GZ 18
Collion SH 1
Collion 19
JT 18 -- 经理JT销售额nager VARCHAR2(20),
create_stamp DATE);
/
insert into test_sales values('SH',5,1,'Kevin',sysdate);
/
insert into test_sales values('SH',6,9,'Kevin',sysdate);
/
insert into test_sales values('GZ',7,8,'Miles',sysdate);
/
insert into test_sales values('SH',5,1,'Collion',sysdate);
/
insert into test_sales values('GZ',6,9,'Collion',sysdate);
group by grouping sets((manager ,location_name),manager)
结果如下:
MANAGER LOCATION_NAME SUM(SALES)
JT GZ 9
Kevin 19
Miles GZ 18
Miles 18
Kevin 19
Miles GZ 18
Miles 18
group by rollup(manager ,location_name)
结果同上,只不过是汇总信息的现实顺序不同:
MANAGER LOCATION_NAME SUM(SALES)
JT GZ 9
group by cube(manager ,location_name)
结果如下:
MANAGER LOCATION_NAME SUM(SALES)
74 -- 各地区总销售额
cube(),rollup(),grouping sets() 是oracle提供的分析函数,看看下面的例子就知道他们的作用了.
创建测试表 并准备数据
CREATE TABLE test_sales (
location_name VARCHAR2(20),
month_flag number,
/
insert into test_sales values('SH',7,8,'JT',sysdate);
/
insert into test_sales values('GZ',5,1,'Miles',sysdate);
/
insert into test_sales values('GZ',6,9,'Miles',sysdate);
Collion GZ 18
Collion SH 1
solution 2 -- rollup()
select manager,location_name,sum(sales) from test_sales
Kevin SH 19
Miles 18 -- 经理Miles总销售额
自己看看下面script的运行结果
select manager,location_name,sum(sales) from test_sales
group by grouping sets((manager ,location_name),manager
,location_name,())
相关文档
最新文档