Report Dashboard - Utenti per Livello di Fiducia

Questa è una versione SQL del Report della Dashboard per Livello di Fiducia Utente.

Questo report fornisce una panoramica della distribuzione dei livelli di fiducia degli utenti all’interno di una community Discourse.

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

Dettaglio della Query

  • SELECT CASE: Questa parte della query utilizza un’istruzione CASE per assegnare un nome leggibile a ciascun livello di fiducia. Traduce il campo numerico trust_level in stringhe come ‘newuser’, ‘basic’, ‘member’, ‘regular’ e ‘leader’ per una più facile comprensione.
  • COUNT(users): Questa funzione conta il numero di utenti all’interno di ciascun livello di fiducia.
  • FROM users: La query estrae i dati dalla tabella users, che contiene tutti gli account utente nella community.
  • WHERE id > 0: Questa condizione assicura che vengano considerati solo gli utenti reali, escludendo eventuali account di sistema che potrebbero avere un ID di 0 o inferiore.
  • AND NOT EXISTS: Questa sottoquery filtra gli utenti contrassegnati come anonimi controllando la tabella anonymous_users. Se un utente ha una voce nella tabella anonymous_users, non viene incluso nel conteggio.
  • GROUP BY trust_level: Questa clausola raggruppa i risultati per livello di fiducia, assicurando che il conteggio venga eseguito separatamente per ogni livello.
  • ORDER BY trust_level: Infine, i risultati vengono ordinati in base al campo trust_level, assicurando che l’output sia ordinato dal livello più basso (newuser) al più alto (leader).

Esempio di Risultati

case count
newuser 1235
basic 234
member 345
regular 56
leader 23
1 Mi Piace