2016-03-30 10 views
1

Dies ist mein TischSQL-Abfrage mit vorherigen Zeilensumme von Zeile zu berechnen

date  count of subscription per date 
----  ---------------------------- 
21-03-2016  10 
22-03-2016  30 
23-03-2016  40 

Bitte brauchen Ihre Hilfe, ich brauche das Ergebnis zu erhalten, wie untenstehende Tabelle, Summen zweiten Reihe mit der ersten Reihe, die gleiche Sache für eine andere Zeilen:

date  count of subscription per date 
----  ---------------------------- 
21-03-2016  10 
22-03-2016  40 
23-03-2016  80 
+0

Haben Sie ID Spalte in dieser Tabelle? – mnv

+0

Ich entfernte die überflüssigen Datenbank-Tags. Fühlen Sie sich frei, das Tag für die Datenbank hinzuzufügen, die Sie verwenden. –

+0

Nein, habe ich nicht. –

Antwort

0
SELECT t.date, (
    SELECT SUM(numsubs) 
    FROM mytable t2 
    WHERE t2.date <= t.date 
) AS cnt 
FROM mytable t 
+0

aber ich habe nur einen Tisch. –

+0

Hauptabfrage und Unterabfrage arbeiten mit einer Tabelle 'mytable' – mnv

+1

Vielen Dank, jetzt funktioniert es richtig, vielen Dank nochmal. –

0

Sie können eine kumulative Summe tun dem ANSI-Standard analytische SUM() Funktion:

select date, sum(numsubs) over (order by date) as cume_numsubs 
from t; 
+0

Gibt es einen Grund für einen anonymen Downvote auf eine korrekte Antwort? –

+0

Ich weiß es nicht, aber plus ist meins. "OVER" ist etwas neues für mich, danke! – mnv

+0

Oh .. Sein Oracle) – mnv

0
Select sum(col1) over(order by date rows between unbounded preceding and current row) cnt from mytable; 
Verwandte Themen