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

求助,关于过去10分钟数据累加
数据如下,STATIONID是站名,OBSTIME是观测时间,RAINFALL是一分钟雨量,现在要计算每个站每个观测时间前10分钟的累计雨量,并在RAINFALL后加一列RAINFALL10M,把数据插入。如果表中再插入数据,
如5 2013/7/1 0:41:00 2013/7/1 0:41:00 9.00 ,怎么能自动完成上述要求?
小弟刚接触ORACLE,看了很多帖子,还是搞不定,求助各位大神。万分感谢!
STATIONID   OBSTIME       INSERTTIME    RAINFALL    
1 2013/7/1 0:01:00 2013/7/1 0:05:00 1.00
1 2013/7/1 0:02:00 2013/7/1 0:05:00 1.00
1 2013/7/1 0:03:00 2013/7/1 0:05:00 1.00
1 2013/7/1 0:04:00 2013/7/1 0:05:00 1.00
1 2013/7/1 0:05:00 2013/7/1 0:05:00 1.00
1 2013/7/1 0:06:00 2013/7/1 0:11:00 2.00
1 2013/7/1 0:07:00 2013/7/1 0:11:00 2.00
1 2013/7/1 0:08:00 2013/7/1 0:11:00 2.00
1 2013/7/1 0:09:00 2013/7/1 0:11:00 2.00
1 2013/7/1 0:10:00 2013/7/1 0:11:00 2.00
2 2013/7/1 0:11:00 2013/7/1 0:17:00 3.00
2 2013/7/1 0:12:00 2013/7/1 0:17:00 3.00
2 2013/7/1 0:13:00 2013/7/1 0:17:00 3.00
2 2013/7/1 0:14:00 2013/7/1 0:17:00 3.00
2 2013/7/1 0:15:00 2013/7/1 0:17:00 3.00
2 2013/7/1 0:16:00 2013/7/1 0:21:00 4.00
2 2013/7/1 0:17:00 2013/7/1 0:21:00 4.00
2 2013/7/1 0:18:00 2013/7/1 0:21:00 4.00
2 2013/7/1 0:19:00 2013/7/1 0:21:00 4.00
2 2013/7/1 0:20:00 2013/7/1 0:21:00 4.00
3 2013/7/1 0:21:00 2013/7/1 0:26:00 5.00
3 2013/7/1 0:22:00 2013/7/1 0:26:00 5.00
3 2013/7/1 0:23:00 2013/7/1 0:26:00 5.00
3 2013/7/1 0:24:00 2013/7/1 0:26:00 5.00
3 2013/7/1 0:25:00 2013/7/1 0:26:00 5.00
3 2013/7/1 0:26:00 2013/7/1 0:30:00 6.00
3 2013/7/1 0:27:00 2013/7/1 0:30:00 6.00
3 2013/7/1 0:28:00 2013/7/1 0:30:00 6.00
3 2013/7/1 0:29:00 2013/7/1 0:30:00 6.00
3 2013/7/1 0:30:00 2013/7/1 0:30:00 6.00
4 2013/7/1 0:31:00 2013/7/1 0:36:00 7.00
4 2013/7/1 0:32:00 2013/7/1 0:36:00 7.00
4 2013/7/1 0:33:00 2013/7/1 0:36:00 7.00
4 2013/7/1 0:34:00 2013/7/1 0:36:00 7.00
4 2013/7/1 0:35:00 2013/7/1 0:36:00 7.00
4 2013/7/1 0:36:00 2013/7/1 0:40:00 8.00
4 2013/7/1 0:37:00 2013/7/1 0:40:00 8.00
4 2013/7/1 0:38:00 2013/7/1 0:40:00 8.00
4 2013/7/1 0:39:00 2013/7/1 0:40:00 8.00
4 2013/7/1 0:40:00 2013/7/1 0:40:00 8.00













累加?

------解决方案--------------------
楼主能不能说清楚地点,你给的这个数据貌似很巧,每个站点都是10分钟的量。
------解决方案--------------------
select STATIONID,OBSTIME,INSERTTIME,RAINFALL,sum(RAINFALL) over(partition by STATIONID order by OBSTIME range between 1/144 preceding and 0 following) RAINFALL10M from table
------解决方案--------------------
昨天写的乱七八糟,重新写过

update t1 set t1.rainfall10m=(
SELECT sum(rainfall) from t1 t2 WHERE t2.obstime between t1.obstime-1/24/60&nbs