2016-04-15 5 views
-1

Diese Abfrage:Ein SQL-Abfrage für eine laufende Summe des Benutzers

SELECT received_at as sign_up_date, 
    COUNT(DISTINCT email) AS "count" 
FROM seller_v2.users 
    GROUP BY 1 
    ORDER BY 1; 

Erzeugt die folgende Ausgabe:

sign_up_date    count 
2016-02-18T17:38:51.000Z  1 
2016-02-18T21:47:48.000Z  1 

Jedes Datum entspricht das Anmeldedatum eines Benutzers. Wie erstelle ich eine neue Spalte mit einer laufenden Gesamtzahl von Benutzern, damit ich ein Zeitreihendiagramm erstellen kann?

+4

Für welches RDBMS ist das? Bitte fügen Sie ein Tag hinzu, um anzugeben, ob Sie 'mysql',' postgresql', 'sql-server',' oracle' oder 'db2' verwenden - oder etwas ganz anderes. –

+0

..Und möchten Sie dies nach Kalendertag oder den Zeitstempel, den Sie gerade verwenden? –

+0

Entschuldigung. Verwenden von Redshift. –

Antwort

1

Wenn Sie mit SQL Server (ich glaube Syntax das gleiche für Oracle ist und möglicherweise einige andere RDBMS) Sie ROW_NUMBER() für die Anzeige der Zeilennummer, die in Ihrem Fall ist identisch mit laufenden Gesamt verwenden können:

SELECT received_at as sign_up_date, 
    ROW_NUMBER() OVER (ORDER BY received_at ASC) AS running_total 
FROM seller_v2.users; 
+0

Perfekt. Vielen Dank. –

Verwandte Themen