Dashboard Report - Nutzer nach Vertrauensstufe

Dies ist eine SQL-Version des Dashboard-Berichts für Benutzer nach Vertrauensstufe.

Dieser Bericht bietet einen Überblick über die Verteilung der Vertrauensstufen von Benutzern in einer Discourse-Community.

SELECT 
    CASE
        WHEN trust_level = 0 THEN 'newuser'
        WHEN trust_level = 1 THEN 'basic'
        WHEN trust_level = 2 THEN 'member'
        WHEN trust_level = 3 THEN 'regular'
        WHEN trust_level = 4 THEN 'leader'
        ELSE 'unknow'
    END,
    COUNT(users) 
FROM users
WHERE 
    id > 0
    AND NOT EXISTS(
                     SELECT 1
                     FROM anonymous_users a
                     WHERE a.user_id = users.id
                  )
GROUP BY trust_level
ORDER BY trust_level

Aufschlüsselung der Abfrage

  • SELECT CASE: Dieser Teil der Abfrage verwendet eine CASE-Anweisung, um jeder Vertrauensstufe einen lesbaren Namen zuzuweisen. Sie übersetzt das numerische Feld trust_level in Zeichenfolgen wie ‚newuser‘, ‚basic‘, ‚member‘, ‚regular‘ und ‚leader‘ zur einfacheren Verständlichkeit.
  • COUNT(users): Diese Funktion zählt die Anzahl der Benutzer innerhalb jeder Vertrauensstufe.
  • FROM users: Die Abfrage zieht Daten aus der Tabelle users, die alle Benutzerkonten in der Community enthält.
  • WHERE id > 0: Diese Bedingung stellt sicher, dass nur echte Benutzer berücksichtigt werden, und schließt alle Systemkonten aus, die möglicherweise eine ID von 0 oder weniger haben.
  • AND NOT EXISTS: Diese Unterabfrage filtert alle Benutzer heraus, die als anonym markiert sind, indem die Tabelle anonymous_users überprüft wird. Wenn ein Benutzer einen Eintrag in der Tabelle anonymous_users hat, wird er nicht in die Zählung einbezogen.
  • GROUP BY trust_level: Diese Klausel gruppiert die Ergebnisse nach Vertrauensstufe und stellt sicher, dass die Zählung für jede Stufe separat erfolgt.
  • ORDER BY trust_level: Schließlich werden die Ergebnisse nach dem Feld trust_level sortiert, um sicherzustellen, dass die Ausgabe von der niedrigsten Stufe (newuser) zur höchsten (leader) sortiert ist.

Beispielergebnisse

case count
newuser 1235
basic 234
member 345
regular 56
leader 23
1 „Gefällt mir“