Dashboard-Bericht - Täglich aktive Nutzer

Dies ist eine SQL-Version des Dashboard-Berichts für täglich aktive Benutzer.

Der SQL-Bericht zählt die Anzahl der eindeutigen Benutzer, die täglich auf einer Website geliked oder gepostet haben.

--[params]
-- date :start_date
-- date :end_date

SELECT
  ua.created_at::date AS day,
  COUNT(DISTINCT ua.user_id) AS engaged_users
FROM user_actions ua
INNER JOIN topics t on t.id = ua.target_topic_id
WHERE ua.created_at::date BETWEEN :start_date AND :end_date
    AND ua.action_type IN (1, 4, 5, 12)
GROUP BY ua.created_at::date
ORDER BY ua.created_at::date ASC

Aufschlüsselung der Abfrage:

  • Datumsparameter: Die Abfrage akzeptiert zwei Datumsparameter, :start_date und :end_date, mit denen Sie den Bereich für den Bericht festlegen können.
  • Auswahl: Sie wählt das Datum der Aktion (ua.created_at::date) aus und zählt die eindeutigen Benutzer-IDs (COUNT(DISTINCT ua.user_id)), die die Aktionen durchgeführt haben, und versieht diese Zählung mit dem Alias engaged_users.
  • Datenquelle: Die Abfrage zieht Daten aus der Tabelle user_actions (ua) und verknüpft sie mit der Tabelle topics (t), um sich auf Aktionen im Zusammenhang mit Themen zu konzentrieren.
  • Aktionstypen: Sie filtert die Aktionen, um nur diejenigen mit den Typen 1, 4, 5 und 12 einzuschließen. Diese Aktionstypen entsprechen den folgenden spezifischen Aktivitäten:
    • 1: Like
    • 4: New Topic
    • 15: Reply
    • 12: New Private Message
  • Gruppierung und Sortierung: Die Ergebnisse werden nach dem Datum der Aktion gruppiert und in aufsteigender Reihenfolge sortiert, was Ihnen eine chronologische Ansicht der Aktivität liefert.

Beispielergebnisse

day engaged_users
2023-01-01 136
2023-01-02 124
2023-01-03 187
2023-01-04 287
2023-01-05 110
2023-01-06 95
2023-01-07 73
5 „Gefällt mir“

Das ist ziemlich interessant, wenn man es so sieht. Es wäre gut, vielleicht eine Version zu haben, die Reagieren und Abstimmen (Umfragen, Themenabstimmungen, Beitragabstimmungen – vielleicht sogar Kommentare zu Beitragabstimmungen) beinhaltet. :thinking:

2 „Gefällt mir“