Dashboard-Bericht - Top-Benutzer nach erhaltenen Likes

Dies ist eine SQL-Version des Dashboard-Berichts für Top-Benutzer nach erhaltenen Likes.

Dieser Dashboard-Bericht zeigt die Top-Benutzer einer Website nach der Anzahl der erhaltenen Likes über alle Beiträge hinweg. Der Bericht hilft Administratoren, stark engagierte Benutzer zu identifizieren, indem die erhaltenen Likes innerhalb eines bestimmten Zeitraums gezählt werden. Dies unterstützt die Anerkennung aktiver Mitglieder, die Bewertung der Inhaltsqualität, die Überwachung von Benutzertrend-Engagements und fundierte Entscheidungen im Community-Management, wie z. B. die Auswahl von Moderatoren.

--[params]
--date :start_date = 2024-01-01
--date :end_date = 2025-01-01

SELECT
ua.user_id AS user_id,
u.username as username,
COUNT(*) likes_received
FROM user_actions ua
INNER JOIN users u on ua.user_id = u.id
WHERE ua.created_at::date BETWEEN :start_date AND :end_date
AND ua.action_type = 2
GROUP BY ua.user_id, u.username, u.uploaded_avatar_id
ORDER BY likes_received DESC

SQL-Abfrageerklärung

Die Abfrage funktioniert wie folgt:

  • Datumsparameter: Die Abfrage akzeptiert zwei Parameter, :start_date und :end_date, die den Datumsbereich für den Bericht definieren. Beide Datumsparameter akzeptieren das Datumsformat JJJJ-MM-TT.
  • Datenauswahl: Die Abfrage wählt Benutzer-IDs und Benutzernamen aus der Tabelle user_actions (ua) und der Tabelle users (u) aus, die mithilfe des INNER JOIN-Befehls von SQL unter der Bedingung verbunden sind, dass ua.user_id mit u.id übereinstimmt.
  • Datenfilterung: Die WHERE-Klausel wird verwendet, um Aktionen zu filtern, die in den angegebenen Datumsbereich fallen, und berücksichtigt nur Aktionen vom Typ was_liked, der durch action_type = 2 dargestellt wird.
  • Aggregation: Die Funktion COUNT(*) in Kombination mit der GROUP BY-Klausel gruppiert die Ergebnisse nach user_id, username und uploaded_avatar_id und zählt die Anzahl der Likes, die jeder Benutzer erhalten hat.
  • Sortierung der Ergebnisse: Die ORDER BY-Klausel sortiert dann die aggregierten Daten absteigend nach likes_received, sodass der Benutzer mit den meisten erhaltenen Likes am Anfang des Berichts steht.

Die Abfrage liefert eine Liste von Benutzern zusammen mit der Anzahl der Likes, die sie im angegebenen Datumsbereich erhalten haben, sortiert von der höchsten zur niedrigsten.

Beispielergebnisse

user username likes_received
user1 user1 748
user2 user2 324
user3 user3 308
2 „Gefällt mir“