日期:2014-05-17  浏览次数:21157 次

如何将oracle数据库中的数据按星期算出每个星期的平均值? 每条数据都有时间字段。
比如某个用户在某一年录入了很多条血压数据, 先我想按周来求出平均数。 (周从星期天为开始 周六为结束)
显示效果 如

2013-01-01到2013-01-05   88
2013-01-06到2013-01-12   99
2013-03-10到2013-03-16   120
         .......

急求啊!  大神们帮帮忙啊!!!!
oracle 数据库 ?周平均数

------解决方案--------------------
with tb_data as (
select '2013-01-12' oxygentime, 55 eos, 55 pulse, 125 userid from dual union all
select '2012-01-06' oxygentime, 55 eos, 55 pulse, 125 userid from dual union all
select '2013-01-02' oxygentime, 55 eos, 55 pulse, 125 userid from dual union all
select '2013-01-05' oxygentime, 55 eos, 55 pulse, 125 userid from dual union all
select '2013-03-08' oxygentime, 55 eos, 55 pulse, 125 userid from dual union all
select '2013-03-06' oxygentime, 55 eos, 55 pulse, 125 userid from dual union all
select '2013-03-07' oxygentime, 55 eos, 55 pulse, 125 userid from dual
)
select xd-6 "开始日期", xd "结束日期", trunc(avg(eos + pulse), 2) "均值"
 from (select t.*, next_day(to_date(oxygentime, 'YYYY-MM-DD'), 7) xd from tb_data t)
 group by xd;