Quali sono le reazioni più comunemente usate nella tua community?

Continuando la discussione da Reactions on Meta:

Ero curioso di sapere come vengono utilizzate le reazioni su un sito con cui lavoro part-time. È un forum sulle ammissioni universitarie, quindi ci sono post su studenti accettati/respinti dalla loro scuola dei sogni e cose del genere. Usiamo :+1: come emoji “mi piace”, ecco perché si posiziona così in alto rispetto a :heart:, che è il “mi piace” predefinito. Ecco cosa ho trovato:

reazione post conteggio
:+1: 260494 720859
:100: 16116 25738
:heart: 13315 23523
:tada: 7538 22674
:rofl: 7200 15720
:mending_heart: 6341 26875
:bulb: 3854 4404
:astonished: 2795 4911
:smile: 2286 2881
:joy: 1758 2623
:sob: 1708 2360
:angry: 1613 3396
:wink: 336 352
:heavy_check_mark: 30 43

Ho creato l’elenco iniziale delle reazioni esaminando quali sono le emoji più comunemente usate nei post. Abbiamo modificato l’elenco in base al feedback dei membri. Sono un fan di :heavy_check_mark: ma è stato chiaro fin da subito che la community non lo era. Quindi l’ho sostituita con qualcos’altro.

Se vuoi vedere come si confronta il tuo sito, la query che ho usato è:

select ':'||reaction_value||':' reaction,
       count(*) posts,
       coalesce(sum(reaction_users_count), sum(like_count)) count
from discourse_reactions_reactions drr
     join posts p on post_id = p.id
group by reaction_value
order by count(*) desc

Curiosità: abbiamo faticato a capire perché l’emoji :gift: fosse così comunemente usata nei post. Alla fine ho rintracciato il colpevole: :robot:.

10 Mi Piace

Spostiamo questo su Community per avere più visibilità. :occhi:

Anche se la query non conta correttamente i Mi piace, o almeno non tutti i nostri (forse perché abbiamo attivato le Reazioni a metà processo)

reazione post conteggio
:cuore: 52295 144915
:+1: 1167 1224
:100: 1101 1236

contro:

valore_reazione conteggio
:cuore: 1371442
:100: 1236
:+1: 1224
Per tua informazione, ho usato una piccola variazione di questa per produrre la nostra tabella:
SELECT source.reaction_value,
       count
FROM

 (
 (

SELECT
    CASE WHEN post_action_type_id = 2 THEN 'heart' END AS reaction_value,
    COUNT(*) AS count
FROM post_actions
WHERE post_action_type_id = 2
  AND deleted_at IS NULL
GROUP BY 1

)
UNION ALL
(

SELECT
    reaction_value,
    SUM(reaction_users_count) AS count
FROM discourse_reactions_reactions
WHERE reaction_value <> 'heart'
GROUP BY 1

)
) AS source

GROUP BY 1,2
ORDER BY 2 DESC

C’è anche quella standard nella sezione report per un controllo incrociato (ma la tabella non è facile da copiare e incollare :sorriso:) - /admin/reports/reactions

4 Mi Piace

Ah. UNION ALL è il modo giusto per eseguire questa query poiché stai contando due cose molto diverse. La mia query necessita di un outer join per coprire i post che non hanno una voce in discourse_reactions_reactions. Aggiungerlo ha causato il timeout della mia query, quindi non posso verificare che risolva il problema. Union è comunque la risposta giusta qui.

Sono un po’ curioso se post_actions possa contare eccessivamente i like. Tiene conto delle persone che mettono like a un post e poi rimuovono o cambiano quella reazione?

Ho dovuto cambiare ‘heart’ in ‘+1’ nella query poiché abbiamo usato :+1: per i nostri like a College Confidential. Ecco il mio risultato da quella query:

reaction count
:+1: 2089798
:mending_heart: 28167
:100: 27070
:heart: 24676
:tada: 24055
:rofl: 16778
:astonished: 5325
:bulb: 4590
:angry: 3547
:smile: 3078
:joy: 2623
:sob: 2443
:wink: 369
:heavy_check_mark: 43
2 Mi Piace

Questo è un buon punto. Tornerò indietro e aggiungerò un AND deleted_at IS NULL.

1 Mi Piace