统计过去一年数据,按12月展示,为0 的数据也展示

第一种方法

按每个月统计出一行数据,然后再行专列。

select decode(counttime,‘NUMS01‘,to_char(add_months(sysdate,0),‘mm‘),‘NUMS02‘,to_char(add_months(sysdate,-1),‘mm‘),‘NUMS03‘,to_char(add_months(sysdate,-2),‘mm‘),‘NUMS04‘,to_char(add_months(sysdate,-3),‘mm‘),‘NUMS05‘,to_char(add_months(sysdate,-4),‘mm‘),‘NUMS06‘,to_char(add_months(sysdate,-5),‘mm‘),‘NUMS07‘,to_char(add_months(sysdate,-6),‘mm‘),‘NUMS08‘,to_char(add_months(sysdate,-7),‘mm‘),‘NUMS09‘,to_char(add_months(sysdate,-8),‘mm‘),‘NUMS10‘,to_char(add_months(sysdate,-9),‘mm‘),‘NUMS11‘,to_char(add_months(sysdate,-10),‘mm‘),‘NUMS12‘,to_char(add_months(sysdate,-11),‘mm‘),‘NUMS011‘,to_char(add_months(sysdate,-10),‘mm‘),counttime) counttime, trunc(countdata/100,2) countdata from (
select nvl(sum(decode(to_char(commitdatetime,‘mm‘),to_char(add_months(sysdate,0),‘mm‘),column,0)),0) nums01,nvl(sum(decode(to_char(commitdatetime,‘mm‘),to_char(add_months(sysdate,-1),‘mm‘),column,0)),0) nums02,
       nvl(sum(decode(to_char(commitdatetime,‘mm‘),to_char(add_months(sysdate,-2),‘mm‘),column,0)),0) nums03,nvl(sum(decode(to_char(commitdatetime,‘mm‘),to_char(add_months(sysdate,-3),‘mm‘),column,0)),0) nums04,
       nvl(sum(decode(to_char(commitdatetime,‘mm‘),to_char(add_months(sysdate,-4),‘mm‘),column,0)),0) nums05,nvl(sum(decode(to_char(commitdatetime,‘mm‘),to_char(add_months(sysdate,-5),‘mm‘),column,0)),0) nums06,
       nvl(sum(decode(to_char(commitdatetime,‘mm‘),to_char(add_months(sysdate,-6),‘mm‘),column,0)),0) nums07,nvl(sum(decode(to_char(commitdatetime,‘mm‘),to_char(add_months(sysdate,-7),‘mm‘),column,0)),0) nums08,
       nvl(sum(decode(to_char(commitdatetime,‘mm‘),to_char(add_months(sysdate,-8),‘mm‘),column,0)),0) nums09,nvl(sum(decode(to_char(commitdatetime,‘mm‘),to_char(add_months(sysdate,-9),‘mm‘),column,0)),0) nums10,
       nvl(sum(decode(to_char(commitdatetime,‘mm‘),to_char(add_months(sysdate,-10),‘mm‘),column,0)),0) nums11,nvl(sum(decode(to_char(commitdatetime,‘mm‘),to_char(add_months(sysdate,-11),‘mm‘),column,0)),0) nums12
           from tablename
           where commitdatetime > to_date(to_char(add_months(sysdate,-12),‘yyyy-mm‘)||‘-1 00:00:01‘,‘yyyy-mm-dd hh24:mi:ss‘)
           )  unpivot (countdata for counttime in (nums01,nums02,nums03,nums04,nums05,nums06,nums07,nums08,nums09,nums10,nums11,nums12) )

第二种方法,先按月统计生成12行2列

select to_char(commitdatetime,‘yyyy-mm‘) countdate,trunc(sum(countcolumn)/10000,2) countarea from tablename where commitdatetime > to_date(to_char(add_months(sysdate,-12),‘yyyy-mm‘)||‘-1 00:00:01‘,‘yyyy-mm-dd hh24:mi:ss‘)  group by to_char(commitdatetime,‘yyyy-mm‘) order by to_char(commitdatetime,‘yyyy-mm‘)

这样统计,为0或者为空的数据将不会出来,接着就是把没有数据的月份也显示出来即可,方法如下

select to_char(add_months(sysdate,1-level),‘yyyy-mm‘) from dual connect by level<13

先构造12个月的数据,然后建这个数据左连接刚才统计的表就可以出来想要的数据了。

select t1.rn, t1.cmonth countdate, nvl(t2.countarea,0) countarea from (
select to_char(add_months(sysdate,1-level),‘yyyy-mm‘) cmonth,rownum rn from dual connect by level<13 ) t1 left join
(select to_char(commitdatetime,‘yyyy-mm‘) countdate,trunc(sum(buildarea)/10000,2) countarea from trade_stat_brinfo where commitdatetime > to_date(to_char(add_months(sysdate,-12),‘yyyy-mm‘)||‘-1 00:00:01‘,‘yyyy-mm-dd hh24:mi:ss‘)  group by to_char(commitdatetime,‘yyyy-mm‘) order by to_char(commitdatetime,‘yyyy-mm‘)) t2 on t1.cmonth = t2.countdate
order by t1.rn

时间: 2024-11-10 13:56:30

统计过去一年数据,按12月展示,为0 的数据也展示的相关文章

12月上海Cloudera Hadoop大数据培训:CCAH、CCDH

北京.上海.广州.成都长期开班:南京.杭州.芜湖定期开班 12月上海开班时间:管理员周末班(12月12-13日:12月19-20日) 开发者脱产班(12月28-31日) [其他课程安排请咨询]15000519329(陈老师) 课程内容: [Cloudera Apache Hadoop管理员课程] 课时:4天 学习系统管理的概念和Apache Hadoop的最佳实践, 从安装和配置到负载均衡和调优. 这个4天的的课程通过动手时间来赋予你部署的经验, 以及更多的安全方面的经验和故障排除. 课程结束后

【BIEE】04_当维度表中的维不存在事实表中,需要展示所有维度并且数据类展示为0

有时候,我们往往会存在这样的需求 例如:事实表的数据如下 EMP_FACT表示事实表,DIM_LEVEL是维度表 预期效果:(根据员工信息,分析各等级员工工资与员工个数) 我们在BIEE报表中新建报表,然后展示报表,展示结果如下: 图1 那么这个效果跟我们的预期效果可是差别比较大的!我们如何来改变这种差别呢? 首先我们分析上面2个表,我们需要解决2个问题,分别是: ①优秀.良好.一般按照顺序排列 ②当事实表不存在[一般]级别数据记录时,展示该维度,并且对应值为0 环境准备 首先在数据库建立事实表

2015年12月全球浏览器份额:IE份额首次跌破50%

IDC评述网(idcps.com)01月08日报道:根据市场研究公司Net Applications最新数据显示,在2015年12月全球浏览器市场上,霸主IE份额跌至48.57%,环比11月下降1.46%,降幅增大明显.而亚军Chrome份额持续上涨,较11月增加0.92%,升至32.33%.接下来,请与IDC评述网一同关注相关数据情况. (图1)12月全球浏览器市场份额分布图 如图1所示,在2015年12月,全球浏览器市场份额大战中,IE与Chrome稳居前二,份额依次是48.57%.32.3

12月国内网站流量统计5强:360安全中心后来居上

IDC评述网(idcps.com)12月31日报道:根据中国互联网协会-中国网站排名公布的最新数据显示,截至2015年12月28日,国内网站独立访问量五强排名依次是百度.360安全中心.腾讯网.搜狗.微博.具体情况如下图所示: 观察上图,可知在12月期间,国内五大网站流量排名发生变化.变动最大的是360安全中心,其流量波动明显,前半月流量趋于0,后半月急剧飙升,不断超越其他网站,最终获得亚军之位. 相比之下,百度.腾讯网.搜狗.微博的流量表现较为平稳.其中百度始终位居第1,而腾讯网.搜狗.微博则

12月上旬国内网站流量统计TOP5:火狐中文网上榜

IDC评述网(idcps.com)12月17日报道:根据中国互联网协会-中国网站排名公布的最新数据显示,截至2015年12月14日,国内网站独立访问量五强名单分别是:百度.腾讯网.搜狗.火狐中文网.微博.详情见下图: 由上图可清楚了解到,12月上旬期间(12月1日至14日),国内前五强网站的独立访问量整体起伏较小,无太大波动.相比上期(11月上旬),百度.腾讯网.微博排名维持不变,坚守第1.2.5名.其中,百度流量呈明显上升趋势.另外,搜狗位居第3,环比上期上升1位.值得一提的是,火狐中文网杀入

12月国内网站流量统计:360安全中心跃居第一

IDC评述网(idcps.com)12月29日报道:根据中国互联网协会-中国网站排名公布的最新数据显示,截至2014年12月25日,国内网站独立访问量排名前五的是:360安全中心.百度.腾讯网.搜狗.淘宝网,如下图. 根据上图,IDC评述网注意到,在12月份五大流量网站中,360安全中心的流量起伏最大,其在月初时流量不断流失,大约从月中开始好转,并一路高歌,最终战胜百度获得第1.另外,排名第4的搜狗,其流量从月初开始上涨,期间一度超越腾讯网,但在月末有所下降,截止至12月25日,以细微的差距输给

2015年12月国内浏览器市场份额:IE卫冕失败

IDC评述网(idcps.com)01月05日报道:根据百度统计的最新数据显示,在2015年12月国内浏览器市场上,Chrome打败IE,以36.80%份额夺冠,相比11月份的36.49%,增加0.31%.而IE则退至第2,份额36.16%,较11月减少0.55%.接下来,请看IDC评述网整理的详细数据情况. (图1)2015年12月国内浏览器市场份额分布图 如图1所示,在2015年12月份,国内浏览器市场份额前6强排名顺序,环比同年11月份,发生细微变动.Chrome取代IE成为霸主,IE则跌

2015年12月流量入口占比动态:仅直接访问实现上涨

IDC评述网(idcps.com)01月27日报道:根据百度统计发布的最新数据显示,在2015年12月,国内流量入口浏览量占比五强排名情况,与11月相比,无变化.直接访问居首,占比环比上涨0.84%,达到41.44%.而另外四强的占比均遭到蚕食,其中降幅最大的是搜索引擎,环比减少0.53%. 下面,请看IDC评述网整理的详尽数据情况. (图1)12月国内流量入口浏览量占比 如图1所示,在2015年12月,国内流量入口浏览量占比五强情况分别是:直接访问第1,占41.44%:其他外链第2,占31.2

12月国内操作系统份额:Win10突破3% 涨幅近1%

IDC评述网(idcps.com)01月07日报道:根据百度统计的最新数据显示,在2015年12月国内操作系统市场份额排名中,Win 7与Win XP分列1.2名,各占据52.39%.33.37%的份额,环比11月均有所下降.值得一提的是,第4名Win 10的份额增至3.28%,较11月增加0.93%,涨幅明显.接下来,IDC评述网将对数据进行整理与分析. (图1)2015年12月国内操作系统市场份额分布图 观察图1,可了解到在2015年12月国内操作系统市场上,Win 7份额仍超半数,为52.