ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 按自定义周期统计数据

按自定义周期统计数据

原创 Linux操作系统 作者:space6212 时间:2019-01-26 21:36:06 0 删除 编辑

今天开发人员提了一个问题:如何根据自定义周期进行数据统计?
比如今天是2007/08/06,按7天作为一个统计周期,则统计时间周期分别是:2007/08/06 - 2007/08/12,2007/08/13-2007/08/19……
统计的时间段是不确定的。

这个问题归根到底是根据统计周期的长度把统计时间段划分为若干部分,这里提供一种方法,抛砖引玉,希望有更多的好方法。


首先构造数据:
SQL> create table tdate as select sysdate+rownum a from dual connect by rownum<30;

Table created

根据统计周期长度划分时间段:

SQL> var start_date date

SQL> exec :start_date:=trunc(sysdate)+4

SQL>
SQL> SELECT TRUNC(A), FLOOR(ABS(:START_DATE - TRUNC(A)) / 7)
2 FROM TDATE
3 WHERE A >= :START_DATE
4 ;

TRUNC(A) FLOOR(ABS(:START_DATE-TRUNC(A)
----------- ------------------------------
2007-8-10 0
2007-8-11 0
2007-8-12 0
2007-8-13 0
2007-8-14 0
2007-8-15 0
2007-8-16 0
2007-8-17 1
2007-8-18 1
2007-8-19 1
2007-8-20 1
2007-8-21 1
2007-8-22 1
2007-8-23 1
2007-8-24 2
2007-8-25 2
2007-8-26 2
2007-8-27 2
2007-8-28 2
2007-8-29 2
2007-8-30 2
2007-8-31 3
2007-9-1 3
2007-9-2 3
2007-9-3 3
2007-9-4 3


实际统计的时候根据第二列做group by操作即可。
把7换成其它数字可以实现按任意的统计周期长度统计。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/231499/viewspace-63843/,如需转载,请注明出处,否则将追究法律责任。

下一篇: DATAGUARD失败切换
请登录后发表评论 登录
全部评论

注册时间:2005-01-25

  • 博文量
    46
  • 访问量
    29997