Report Dashboard - Utenti principali per Like Ricevuti

Questa è una versione SQL del report della dashboard per i migliori utenti per Mi piace ricevuti.

Questo report della dashboard mostra i migliori utenti di un sito in base al numero di Mi piace ricevuti su tutti i post. Il report aiuta gli amministratori a identificare gli utenti altamente coinvolti contando i Mi piace ricevuti entro un certo periodo, aiutando a riconoscere i membri attivi, valutare la qualità dei contenuti, monitorare le tendenze di coinvolgimento degli utenti e prendere decisioni informate sulla gestione della community, come la selezione dei moderatori.

--[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

Spiegazione della query SQL

La query funziona come segue:

  • Parametri Data: La query accetta due parametri, :start_date e :end_date, che definiscono l’intervallo di date per il report. Entrambi i parametri data accettano il formato data AAAA-MM-GG.
  • Selezione dei Dati: La query seleziona gli ID utente e i nomi utente dalla tabella user_actions (ua) e dalla tabella users (u), che vengono unite tra loro utilizzando il comando INNER JOIN di SQL sulla condizione che ua.user_id corrisponda a u.id.
  • Filtraggio dei Dati: La clausola WHERE viene utilizzata per filtrare le azioni che rientrano nell’intervallo di date specificato e considera solo le azioni del tipo was_liked, rappresentato da action_type = 2.
  • Aggregazione: La funzione COUNT(*) in combinazione con la clausola GROUP BY raggruppa i risultati per user_id, username e uploaded_avatar_id, e conta il numero di Mi piace ricevuti da ciascun utente.
  • Ordinamento dei Risultati: La clausola ORDER BY ordina quindi i dati aggregati in modo decrescente in base a likes_received, in modo che l’utente con il maggior numero di Mi piace ricevuti sia in cima al report.

La query produce un elenco di utenti insieme al conteggio dei Mi piace che hanno ricevuto nell’intervallo di date specificato, ordinato dal più alto al più basso.

Risultati di esempio

user username likes_received
user1 user1 748
user2 user2 324
user3 user3 308
2 Mi Piace