2016-05-16 14 views
2

Ich versuche, Abfragen zu implementieren, die Kundenbindung zu berechnen und Churn mit PostgreSQL 9.5.2 folgende this tutorialBerechnung Benutzer Abwanderungs mit Postgresql

ich eine Tabelle der Ereignisse haben wie folgt definiert:

CREATE TABLE public.messages 
(
    id character(100) NOT NULL, 
    "userId" character(100), 
    "createdAt" timestamp without time zone, 
    CONSTRAINT messages_pkey PRIMARY KEY (id) 
) 
WITH (
    OIDS=FALSE 
); 

behielt die Berechnung Benutzer arbeitet nur gut, aber ich bin in Probleme laufen mit Zählen „userId“, die NULL-Werte sind, wenn diese Abfrage ausgeführt wird:

with monthly_activity as (
    select distinct 
    date_trunc('month', "createdAt") as month, 
    "userId" 
    from messages 
) 
select 
    this_month.month, 
    count(distinct this_month."userId") 
from monthly_activity last_month 
left join monthly_activity this_month 
    on this_month."userId" = last_month."userId" 
    and this_month.month = last_month.month + interval '1 month' 
where this_month."userId" is null 
group by 1 

Tabellen werden jo richtig, aber das Zählen der Nullwerte scheint keine Ergebnisse zu liefern.

Irgendwelche Hinweise, wie ich es zum Laufen bringen kann?

Danke!

+0

'wo dieser Monat "userId" ist null' Sie explizit sind JOIN die NULL-Werte von der linken Auswahl. Was würdest du sonst noch erwarten? – wildplasser

Antwort