Quelles sont les réactions les plus couramment utilisées dans votre communauté ?

Continuant la discussion de Réactions sur Meta :

J’étais curieux de savoir comment les réactions sont utilisées sur un site sur lequel je travaille à temps partiel. C’est un forum sur les admissions universitaires, il y a donc des publications sur des étudiants acceptés/rejetés de leur école de rêve et ce genre de choses. Nous utilisons :+1: comme notre emoji « j’aime », c’est pourquoi il se classe si haut par rapport à :heart:, qui est le « j’aime » par défaut. Voici ce que j’ai trouvé :

réaction publications nombre
:+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

J’ai créé la liste initiale des réactions en examinant quels sont les emojis les plus couramment utilisés dans les publications. Nous avons ajusté la liste en fonction des commentaires des membres. Je suis fan de :heavy_check_mark: mais il était clair très tôt que la communauté ne l’était pas. Je l’ai donc remplacé par autre chose.

Si vous souhaitez voir comment votre site se compare, la requête que j’ai utilisée est :

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

Anecdote amusante : nous avons eu du mal à comprendre pourquoi l’emoji :gift: était si couramment utilisé dans les publications. Finalement, j’ai trouvé le coupable : :robot:.

10 « J'aime »

On déplace ça dans Community Building pour avoir plus d’yeaux dessus. :eyes:

Bien que la requête ne compte pas correctement les J’aime, ou du moins pas tous les nôtres (peut-être parce que nous avons activé les Réactions en cours de route)

reaction posts count
:heart: 52295 144915
:+1: 1167 1224
:100: 1101 1236

contre :

reaction_value count
:heart: 1371442
:100: 1236
:+1: 1224
Pour ce que ça vaut, j’utilise une petite variante de celle-ci pour produire notre tableau :
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

Il y a aussi la version standard dans la section des rapports pour croiser les données (mais le tableau n’est pas aussi facile à copier-coller :slight_smile:) - /admin/reports/reactions

4 « J'aime »

Ah. UNION ALL est la bonne façon de faire cette requête car vous comptez deux choses très différentes. Ma requête a besoin d’une jointure externe pour couvrir les publications qui n’ont pas d’entrée dans discourse_reactions_reactions. L’ajout de cela a fait expirer ma requête, je ne peux donc pas vérifier si cela résout le problème. Union est la bonne réponse ici dans tous les cas.

Je suis un peu curieux de savoir si post_actions pourrait surestimer les likes. Prend-il en compte les personnes qui aiment une publication puis suppriment ou modifient cette réaction ?

J’ai dû changer ‘heart’ en ‘+1’ dans la requête car nous utilisions :+1: pour nos likes à College Confidential. Voici mon résultat de cette requête :

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 « J'aime »

C’est un bon point. Laissez-moi revenir en arrière et ajouter un AND deleted_at IS NULL.

1 « J'aime »