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_datee:end_date, che definiscono l’intervallo di date per il report. Entrambi i parametri data accettano il formato dataAAAA-MM-GG. - Selezione dei Dati: La query seleziona gli ID utente e i nomi utente dalla tabella
user_actions(ua) e dalla tabellausers(u), che vengono unite tra loro utilizzando il comandoINNER JOINdi SQL sulla condizione cheua.user_idcorrisponda au.id. - Filtraggio dei Dati: La clausola
WHEREviene utilizzata per filtrare le azioni che rientrano nell’intervallo di date specificato e considera solo le azioni del tipowas_liked, rappresentato daaction_type = 2. - Aggregazione: La funzione
COUNT(*)in combinazione con la clausolaGROUP BYraggruppa i risultati peruser_id,usernameeuploaded_avatar_id, e conta il numero di Mi piace ricevuti da ciascun utente. - Ordinamento dei Risultati: La clausola
ORDER BYordina quindi i dati aggregati in modo decrescente in base alikes_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 |
| … | … | … |