sql >> Databasteknik >  >> RDS >> Oracle

Dynamisk löpande total

UPPDATERAD Letar du efter det här?

CREATE VIEW vw_rain_stats
AS
  SELECT TRUNC(rain_date, 'MM') rain_date,
         SUM(amt) amt
    FROM rain_stats
   GROUP BY TRUNC(rain_date, 'MM')
;

Få månatliga belopp för 2012 år

SELECT rain_date,
       amt,
       SUM(amt) OVER (ORDER BY rain_date) running_amt
  FROM vw_rain_stats
 WHERE rain_date BETWEEN '01-JAN-12' AND '01-DEC-12';

Få månatliga belopp från och med december 2011

SELECT rain_date,
       amt,
       SUM(amt) OVER (ORDER BY rain_date) running_amt
  FROM vw_rain_stats
 WHERE rain_date >= '01-DEC-11';

Exempelutdata:

|          RAIN_DATE | AMT | RUNNING_AMT |
------------------------------------------
| December, 01 2011  |  80 |          80 |
|  January, 01 2012  |  30 |         110 |
| February, 01 2012  |  70 |         180 |
|    March, 01 2012  | 110 |         290 |
| .................. | ... | ........... |

Här är SQLFiddle demo



  1. Kan du använda en MySQL-fråga för att helt skapa en kopia av databasen

  2. Ta bort MySQL Ubuntu 14.04 LTS helt

  3. Varför är SQLAlchemy count() mycket långsammare än den råa frågan?

  4. ImportError:Ingen modul med namnet mysql.connector som använder Python3?