2016-11-28 13 views
1

Vereinfacht ich so etwas wie diese:Gruppe mit Summe

select register_date,count(*) 
from USER 
group by register_date; 

und Ergebnis ist:

2016-01-20 10 
2016-01-21 5 
2016-01-22 8 

Dies zeigt mir, dass registrierte am ersten Tag 10 des Benutzer als 5 und 8 der nächsten Tage. Ich brauche eine Summe von registrierten Benutzern haben:

2016-01-20 10 
2016-01-21 15 (10+5) 
2016-01-22 23 (10+5+8) 

Irgendwelche Ideen, wie es zu bekommen? Vielen Dank im Voraus.

Antwort

5

Verwenden Sie eine kumulative Summe. Sie können dies auch mit einer Aggregationsabfrage tun:

select register_date, count(*), 
     sum(count(*)) over (order by register_date) as running_count 
from USER 
group by register_date 
order by register_date;