Skip to content
Advertisement

Query Oracle for 12 month moving total (SUM) of data

I need to run a query on some data that brings back the moving 12 month total. I’ve already performed the average function on the data… so now I just need to loop through and get a moving 12 month period of data and SUM it up so I can graph it.

Below is the current query i’m issuing but it isn’t adding up correctly. Basically I want to have January of 1996 show the SUM of the prior 12 months averaged data. So January of 1996 would be the sum of January 1995 + February 1995 …. all the way through December 1995. Then February of 1996 would be the SUM of February 1995 + March 1995 ….

Is this possible using the OVER function in Oracle 11g? Seems like it is but I’m not getting the right results for some reason.

Here is my current query:

/* Formatted on 9/5/2013 3:20:55 PM (QP5 v5.149.1003.31008) */
SELECT MONTH_DT,
     YEAR_DT,
     AVERAGE_TOTAL_RAINFALL,
     (SUM (AVERAGE_TOTAL_RAINFALL)
         OVER (ORDER BY MONTH_DT ROWS BETWEEN 12 PRECEDING AND CURRENT ROW))  as "12_MONTH_TOTAL"
FROM (  SELECT month_dt,
               year_dt,
               TRUNC ( (SUM (tsvalue_ms)
                        / (SELECT COUNT (FEATURE_ID)
                             FROM nexrad.springshed_featureid
                            WHERE springshed_id = 1)), 3)
                  AS average_total_rainfall
          FROM ts_monthly_agg a, nexrad.springshed_featureid b
         WHERE a.FEATURE_ID = b.FEATURE_ID AND b.springshed_id = 1
      GROUP BY year_dt, month_dt
      ORDER BY year_dt, month_dt)
ORDER BY year_dt, month_dt;

Here is a few rows of the sample data and the current way the OVER function is calculating.

MONTH  YEAR    AVERAGE     12_MONTH_TOTAL
------------------------------------
1     1995     4.31         4.31
2     1995     1.932    27.473
3     1995     3.733    47.523
4     1995     4.216    44.841
5     1995     3.721    31.573
6     1995     8.379    50.459
7     1995     6.028    102.591
8     1995     7.918    105.076
9     1995     3.516    97.507
10    1995     5.623    74.056
11    1995     1.813    30.904
12    1995     1.881    23.03
1     1996     2.625    6.935
2     1996     1.165    27.459
3     1996     9.374    55.274
4     1996     2.84         45.388
5     1996     2.538    32.714
6     1996     5.952    55.483
7     1996     6.562    102.816
8     1996     8.428    108.123
9     1996     3.364    95.583
10    1996     4.222    72.252
11    1996     0.453    31.116
12    1996     4.968    26.6

Here is a dataset incase that helps.

Thanks so much for any assistance! Josh

Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 1995, 4.31);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 1995, 1.932);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 1995, 3.733);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 1995, 4.216);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 1995, 3.721);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 1995, 8.379);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 1995, 6.028);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 1995, 7.918);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 1995, 3.516);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 1995, 5.623);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 1995, 1.813);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 1995, 1.881);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 1996, 2.625);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 1996, 1.165);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 1996, 9.374);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 1996, 2.84);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 1996, 2.538);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 1996, 5.952);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 1996, 6.562);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 1996, 8.428);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 1996, 3.364);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 1996, 4.222);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 1996, 0.453);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 1996, 4.968);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 1997, 2.384);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 1997, 0.903);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 1997, 2.575);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 1997, 4.692);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 1997, 1.786);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 1997, 6.301);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 1997, 6.515);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 1997, 5.053);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 1997, 5.01);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 1997, 7.267);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 1997, 4.254);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 1997, 8.082);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 1998, 3.205);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 1998, 10.933);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 1998, 4.298);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 1998, 0.385);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 1998, 1.037);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 1998, 2.544);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 1998, 8.21);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 1998, 6.244);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 1998, 10.461);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 1998, 0.378);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 1998, 1.35);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 1998, 0.969);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 1999, 5.353);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 1999, 1.116);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 1999, 1.749);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 1999, 2.02);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 1999, 2.605);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 1999, 8.07);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 1999, 4.378);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 1999, 7.373);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 1999, 5.294);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 1999, 1.281);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 1999, 1.35);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 1999, 1.279);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2000, 2.217);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2000, 0.862);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2000, 1.45);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2000, 0.698);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2000, 0.205);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2000, 8.584);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 2000, 5.381);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 2000, 5.288);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 2000, 6.026);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 2000, 0.241);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 2000, 1.398);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2000, 0.814);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2001, 2.005);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2001, 0.953);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2001, 6.8);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2001, 0.648);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2001, 0.484);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2001, 6.337);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 2001, 8.872);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 2001, 5.446);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 2001, 8.764);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 2001, 0.532);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 2001, 0.842);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2001, 1.388);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2002, 1.179);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2002, 1.623);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2002, 2.293);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2002, 1.397);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2002, 0.928);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2002, 9.158);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 2002, 7.98);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 2002, 8.007);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 2002, 4.902);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 2002, 2.282);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 2002, 3.611);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2002, 7.606);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2003, 0.172);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2003, 4.871);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2003, 7.315);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2003, 1.408);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2003, 3.083);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2003, 12.093);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 2003, 5.617);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 2003, 6.838);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 2003, 3.103);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 2003, 2.773);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 2003, 1.191);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2003, 0.658);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2004, 1.769);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2004, 5.733);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2004, 1.565);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2004, 1.688);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2004, 1.694);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2004, 7.389);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 2004, 9.441);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 2004, 7.223);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 2004, 18.424);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 2004, 2.368);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 2004, 2.131);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2004, 1.699);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2005, 0.958);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2005, 2.1);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2005, 6.085);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2005, 6.194);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2005, 5.947);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2005, 10.413);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 2005, 11.105);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 2005, 11.823);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 2005, 2.737);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 2005, 4.933);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 2005, 2.659);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2005, 4.525);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2006, 1.48);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2006, 6.679);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2006, 0.261);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2006, 2.652);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2006, 2.194);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2006, 6.536);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 2006, 7.587);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 2006, 8.422);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 2006, 5.141);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 2006, 1.583);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 2006, 1.845);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2006, 4.588);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2007, 3.543);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2007, 5.29);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2007, 2.623);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2007, 1.931);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2007, 1.404);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2007, 5.479);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 2007, 10.63);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 2007, 5.385);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 2007, 6.448);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 2007, 6.419);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 2007, 0.845);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2007, 2.127);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2008, 3.357);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2008, 4.253);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2008, 5.22);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2008, 2.192);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2008, 0.541);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2008, 8.029);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 2008, 9.963);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 2008, 13.26);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 2008, 2.199);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 2008, 1.179);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 2008, 1.49);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2008, 0.69);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2009, 3.007);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2009, 1.456);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2009, 1.693);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2009, 2.359);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2009, 10.714);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2009, 5.592);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 2009, 8.076);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 2009, 5.85);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 2009, 4.032);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 2009, 1.501);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 2009, 3.027);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2009, 2.909);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2010, 3.812);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2010, 5.226);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2010, 6.655);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2010, 1.09);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2010, 5.203);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2010, 5.846);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 2010, 6.793);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 2010, 9.743);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 2010, 2.599);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 2010, 0.01);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 2010, 0.94);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2010, 0.677);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2011, 4.928);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2011, 2.23);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2011, 3.986);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2011, 2.12);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2011, 2.214);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2011, 5.476);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (7, 2011, 5.713);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (8, 2011, 6.706);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (9, 2011, 4.058);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (10, 2011, 5.27);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (11, 2011, 1.17);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2011, 0.363);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2012, 1.034);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2012, 2.375);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2012, 2.148);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2012, 1.658);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2012, 5.773);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (6, 2012, 14.215);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (12, 2012, 3.889);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (1, 2013, 0.302);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (2, 2013, 1.954);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (3, 2013, 0.781);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (4, 2013, 3.163);
Insert into RAINFALL_DATA
   (MONTH_DT, YEAR_DT, AVERAGE_TOTAL_RAINFALL)
 Values
   (5, 2013, 2.385);

Advertisement

Answer

To get the desired result you need to order by year_dt column or combination of year_dt and month_dt columns:

 select month_dt
      , year_dt
      , average_total_rainfall
      , sum(average_total_rainfall) over(order by year_dt, month_dt 
                                          rows between 12 preceding 
                                               and current row) res
  from rainfall_data



MONTH_DT    YEAR_DT AVERAGE_TOTAL_RAINFALL        RES
---------- ---------- ---------------------- ----------
     1       1995                   4,31       4,31
     2       1995                  1,932      6,242
     3       1995                  3,733      9,975
     4       1995                  4,216     14,191
     5       1995                  3,721     17,912
     6       1995                  8,379     26,291
     7       1995                  6,028     32,319
     8       1995                  7,918     40,237
     9       1995                  3,516     43,753
    10       1995                  5,623     49,376
    11       1995                  1,813     51,189
    12       1995                  1,881      53,07
     1       1996                  2,625     55,695
     2       1996                  1,165      52,55
     3       1996                  9,374     59,992
     4       1996                   2,84     59,099
     5       1996                  2,538     57,421
     6       1996                  5,952     59,652
     7       1996                  6,562     57,835
     8       1996                  8,428     60,235

When you are ordering only by month_dt the rows will be processed by analytic function in the following order:

month_dt year_dt   average
--------------------------
1        1995   4.31
1        1996   2.625
1        1997   2.384
1        1998   3.205
1        1999   5.353
1        2000   2.217
1        2001   2.005
1        2002   1.179
1        2003   0.172
1        2004   1.769
1        2005   0.958
1        2006   1.48
1        2007   3.543

producing result that doesn’t meet your expectations.

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement