Data Explorer - Anteil aktiver Mitglieder pro Monat

Hallo an alle, die das Data Explorer-Plugin nutzen und erkunden!

Danke für die Unterstützung bei all den vorherigen Fragen, @michebs. Ich habe noch eine weitere Frage zu Data Explorer-Abfragen.

Hat jemand bereits eine Abfrage erstellt, die den Prozentsatz der aktiven Nutzer pro Monat ermittelt?

Aktiv bedeutet, dass sie in diesem Monat entweder einen Beitrag geliked oder in einem Thread geantwortet haben. Es spielt keine Rolle, wie oft, aber es muss mindestens einmal geschehen sein. Der Prozentsatz wird auf Basis der Gesamtzahl aller Mitglieder der Community berechnet. Nehmen wir also an, wir haben zwei Personen, die in einem Monat aktiv waren: Eine hat einen Beitrag geliked, die andere hat geantwortet – das sind also zwei, und wir teilen diese Zahl durch die Summe aller Mitglieder unserer Community.

Ich hoffe, das hilft.
Es sei erwähnt, dass sich die Gesamtzahl der Benutzer im Laufe der Zeit ändert. Daher berücksichtigt die Abfrage die kumulierte Anzahl der Benutzer bis zum Monat und Jahr, in dem die Aktion durchgeführt wurde.

WITH tt_users_by_month AS (
    SELECT 
        date_part('year', created_at) AS year, 
        date_part('month', created_at) AS month,
        COUNT(*) AS "new_users_month"
    FROM users
    WHERE id > 0
    GROUP BY date_part('year', created_at), date_part('month', created_at)
    ORDER BY date_part('year', created_at) ASC, date_part('month', created_at)
),

total_users AS (
    SELECT
        year, 
        month, 
        SUM(new_users_month) over (ORDER BY year, month rows between unbounded preceding AND current row) AS total
    FROM tt_users_by_month ORDER BY year, month
)

SELECT 
    date_part('year', ua.created_at) AS year, 
    date_part('month', ua.created_at) AS month,
    TRUNC(COUNT(DISTINCT user_id)::decimal/tu.total*100,2) AS "%"
FROM 
    user_actions ua
INNER JOIN total_users tu ON (date_part('year', ua.created_at) = tu.year AND date_part('month', ua.created_at) = tu.month)
WHERE action_type IN (1,5)
	GROUP BY date_part('year', created_at), date_part('month', created_at), total

Ja, das ergibt total Sinn! Danke!