Daten-Explorer-Abfrage für alle aktiven Benutzer (Lurker + Poster)

Dies sollte Ihnen alle Benutzer zurückgeben, die entweder eingeloggt gelesen oder im letzten Jahr gepostet haben. Der Data Explorer gibt zudem die Anzahl der Benutzer aus.

SELECT p.user_id
FROM posts p
LEFT JOIN topics t ON t.id = p.topic_id
WHERE p.created_at::date > CURRENT_TIMESTAMP - INTERVAL '365 days'
 AND t.deleted_at IS NULL
 AND t.visible = TRUE
 AND t.closed = FALSE
 AND t.archived = FALSE
 AND t.archetype = 'regular'
 AND p.deleted_at IS NULL
UNION
SELECT u.user_id
FROM user_visits u
WHERE u.posts_read > 0
 AND u.visited_at > CURRENT_TIMESTAMP - INTERVAL '365 days'
ORDER BY user_id

Es gibt wahrscheinlich einen effizienteren Weg, dies zu tun, aber es funktioniert :slight_smile:. Wenn Sie einen bestimmten Zeitraum möchten, können Sie beide Vorkommen von > CURRENT_TIMESTAMP - INTERVAL '365 days' durch etwas wie BETWEEN '20200101'::date AND '20210101'::date ersetzen.

Sie haben in Ihrer Frage großartige Informationen und Referenzen bereitgestellt! Ich musste nur die richtigen Teile auswählen und kombinieren.