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_dateund:end_date, die den Datumsbereich für den Bericht definieren. Beide Datumsparameter akzeptieren das DatumsformatJJJJ-MM-TT. - Datenauswahl: Die Abfrage wählt Benutzer-IDs und Benutzernamen aus der Tabelle
user_actions(ua) und der Tabelleusers(u) aus, die mithilfe desINNER JOIN-Befehls von SQL unter der Bedingung verbunden sind, dassua.user_idmitu.idübereinstimmt. - Datenfilterung: Die
WHERE-Klausel wird verwendet, um Aktionen zu filtern, die in den angegebenen Datumsbereich fallen, und berücksichtigt nur Aktionen vom Typwas_liked, der durchaction_type = 2dargestellt wird. - Aggregation: Die Funktion
COUNT(*)in Kombination mit derGROUP BY-Klausel gruppiert die Ergebnisse nachuser_id,usernameunduploaded_avatar_idund zählt die Anzahl der Likes, die jeder Benutzer erhalten hat. - Sortierung der Ergebnisse: Die
ORDER BY-Klausel sortiert dann die aggregierten Daten absteigend nachlikes_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 |
| … | … | … |