excel数据透视表的作用怎么做

博客访问: 1104891
博文数量: 246
博客积分: 10011
博客等级: 上将
技术积分: 2467
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Oracle
前一段时间完成公司的薪资系统的开发工作,用了层层SQL做生成类似EXCEL的数据透视表,没想到用一个SQL就能实现,实在有些打击,和大家分享一下。
比如说:我要得到类似下面格式的数据。
CHANNEL_DESC&&&&&&&& CO SALES$-------------------- -- --------------&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 833,224&&&&&&&&&&&&&&&&&&&& FR&&&&&&&& 70,799&&&&&&&&&&&&&&&&&&&& US&&&&&&& 762,425Internet&&&&&&&&&&&&&&&&&&&&&& 133,821Internet&&&&&&&&&&&& FR&&&&&&&&& 9,597Internet&&&&&&&&&&&& US&&&&&&& 124,224Direct Sales&&&&&&&&&&&&&&&&&& 699,403Direct Sales&&&&&&&& FR&&&&&&&& 61,202Direct Sales&&&&&&&& US&&&&&&& 638,201
我开始的做法需要JDBC执行3层group by,但是现在发现只需要下面一个SQL语句,这是ORACLE为DW提供的GROUP BY CUBE ,它可以轻松实现数据透视表。
SELECT channels.channel_desc, countries.country_iso_code,& TO_CHAR(SUM(amount_sold), '9,999,999,999') SALES$FROM sales, customers, times, channels, countriesWHERE sales.time_id=times.time_id AND sales.cust_id=customers.cust_id AND& sales.channel_id= channels.channel_id AND channels.channel_desc IN& ('Direct Sales', 'Internet') AND times.calendar_month_desc='2000-09'& AND customers.country_id=countries.country_id& AND countries.country_iso_code IN ('US','FR')GROUP BY CUBE(channels.channel_desc, countries.country_iso_code);
注意:上面的SQL,之所以要查sales, customers, times, channels, countries这么多表,是因为这是数据仓库的星型模型,如果是数据都在一张表里也一样,和GROUP BY CUBE没关系。
下面的GROUP BY ROLLUP更加方便使用。
SELECT channels.channel_desc, calendar_month_desc, &&&&&& countries.country_iso_code,&&&&&& TO_CHAR(SUM(amount_sold), '9,999,999,999') SALES$FROM sales, customers, times, channels, countriesWHERE sales.time_id=times.time_id & AND sales.cust_id=customers.cust_id & AND customers.country_id = countries.country_id& AND sales.channel_id = channels.channel_id & AND channels.channel_desc IN ('Direct Sales', 'Internet') & AND times.calendar_month_desc IN ('2000-09', '2000-10') & AND countries.country_iso_code IN ('GB', 'US')GROUP BY & ROLLUP(channels.channel_desc, calendar_month_desc, countries.country_iso_code);CHANNEL_DESC&&&&&&&& CALENDAR CO SALES$-------------------- -------- -- --------------Internet&&&&&&&&&&&& 2000-09& GB&&&&&&&& 16,569Internet&&&&&&&&&&&& 2000-09& US&&&&&&& 124,224Internet&&&&&&&&&&&& 2000-09&&&&&&&&&&& 140,793Internet&&&&&&&&&&&& 2000-10& GB&&&&&&&& 14,539Internet&&&&&&&&&&&& 2000-10& US&&&&&&& 137,054Internet&&&&&&&&&&&& 2000-10&&&&&&&&&&& 151,593Internet&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 292,387Direct Sales&&&&&&&& 2000-09& GB&&&&&&&& 85,223Direct Sales&&&&&&&& 2000-09& US&&&&&&& 638,201Direct Sales&&&&&&&& 2000-09&&&&&&&&&&& 723,424Direct Sales&&&&&&&& 2000-10& GB&&&&&&&& 91,925Direct Sales&&&&&&&& 2000-10& US&&&&&&& 682,297Direct Sales&&&&&&&& 2000-10&&&&&&&&&&& 774,222Direct Sales&&&&&&&&&&&&&&&&&&&&&&&&& 1,497,646&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 1,790,032
注意:group by cube 的汇总数据是在明细数据之前显示,group by rollup 的汇总数据是在明细数据之后显示,并且最后有整个的汇总数据。
阅读(5624) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。播放列表加载中...
正在载入...
分享视频:
嵌入代码:
拍下二维码,随时随地看视频
Excel技巧之如何做数据透视表
上 传 者:
内容介绍:
Excel技巧之如何做数据透视表
我来说点啥
版权所有 CopyRight
| 京网文[0号 |
| 京公网安备:
互联网药品信息服务资格证:(京)-非经营性- | 广播电视节目制作经营许可证:(京)字第403号
<img src="" width="34" height="34"/>
<img src=""/>
<li data-vid="">
<img src=""/><i data-vid="" class="ckl_plays">
<img width="132" height="99" src=""/>
在线人数:
<li data-vid="">
<img src=""/><i data-vid="" class="ckl_plays">
<img src="///img/blank.png" data-src=""/>
<img src="///img/blank.png" data-src="http://"/>
<li data-vid="" class="cfix">
src="///img/blank.png" data-src=""/>
<i data-vid="" class="ckl_plays">
<li data-vid="" class="cfix">
src="///img/blank.png" data-src=""/><i data-vid="" class="ckl_plays">
没有数据!
{upload_level_name}
粉丝 {fans_count}
{video_count}
{description}电脑教程子分类> Excel 2013中使用数据透视表中进行中国式排名的方法
Excel 2013中使用数据透视表中进行中国式排名的方法
时间:13-09-05
大家知道在Excel中可以用很多公式实现中国式排名。如果要在Excel数据透视表中将某个数值字段进行中国式排名,利用以上版本数据透视表提供的一种新增的&值显示方式&,也可以轻松实现中国式排名,而无需使用公式。以下图数据为例,在中的实现中国式排名步骤如下。
1、建立数据透视表。选择数据源中的某个单元格,单击&插入&数据透视表&,建立一个数据透视表。在&数据透视表字段&列表中勾选&姓名&和&总成绩&字段。
2、在&数据透视表字段&列表中将&总成绩&字段再次拖入到&值&区域,这样,&值&区域就有两个&总成绩&字段,我们用第二个&总成绩&字段作为排名。
双击数据透视表中的&求和项:总成绩2&,弹出&值字段设置&对话框。还可以右击&求和项:总成绩2&列中的某个单元格,选择&值字段设置&;或者在&数据透视表字段&列表的&值&区域中单击&求和项:总成绩2&,选择&值字段设置&。
在&值字段设置&对话框中,选择&值显示方式&选项卡,选择&降序排列&后确定。
这时的数据透视表如下图。
3、在数据透视表中将&求和项:总成绩2&字段名称改为&排名&,并按降序排序排列该字段。
可以看到C列的排名中,并列者并不占用下一个名次,即为中国式排名。
Excel2013教程相关
关于<>的评论
Excel2013教程分类
本站赞助商
最新Excel2013教程文章
本站支持IE6.0/7.0,火狐,傲游等主流浏览器.最佳浏览体验要求分辨率在以上,颜色质量32位。
黑ICP备号 Powered by

我要回帖

更多关于 excel表格透视表的作用 的文章

 

随机推荐