ما هي ردود الفعل الأكثر شيوعًا في مجتمعكم؟

متابعةً للنقاش من ردود الفعل على ميتا:

كنت أتساءل عن كيفية استخدام ردود الفعل على موقع أعمل به بدوام جزئي. إنه منتدى حول القبول بالجامعات، لذا هناك منشورات حول قبول/رفض الطلاب من جامعتهم الحلم وما شابه ذلك. نستخدم :+1: كرمز تعبيري “لإعجاب” لدينا، ولهذا السبب يحتل المرتبة العالية مقارنة بـ :heart:، وهو رمز “الإعجاب” الافتراضي. إليك ما وجدته:

رد الفعل المنشورات العدد
:+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

لقد أنشأت القائمة الأولية لردود الفعل من خلال النظر إلى أكثر الرموز التعبيرية استخدامًا في المنشورات. قمنا بتعديل القائمة بناءً على ملاحظات الأعضاء. أنا من محبي :heavy_check_mark: ولكن كان من الواضح في وقت مبكر جدًا أن المجتمع لم يكن كذلك. لذلك قمت بتبديله بشيء آخر.

إذا كنت ترغب في رؤية كيف يقارن موقعك، فإن الاستعلام الذي استخدمته هو:

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

حقيقة ممتعة: كافحنا لفهم سبب استخدام الرمز التعبيري :gift: بشكل شائع جدًا في المنشورات. في النهاية تتبعتُ المذنب: :robot:.

10 إعجابات

دعنا ننقل هذا إلى Community للحصول على المزيد من الاهتمام. :eyes:

على الرغم من أن الاستعلام لا يحسب الإعجابات بشكل صحيح، أو على الأقل ليس كل إعجاباتنا (ربما لأننا قمنا بتشغيل ردود الفعل في منتصف العملية)

رد الفعل منشورات العدد
:heart: 52295 144915
:+1: 1167 1224
:100: 1101 1236

مقابل:

قيمة رد الفعل العدد
:heart: 1371442
:100: 1236
:+1: 1224
للعلم، لقد كنت أستخدم تنويعًا صغيرًا لهذا لإنتاج جدولنا:
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

هناك أيضًا العنصر القياسي في قسم التقارير للتحقق منه (لكن الجدول ليس بنفس سهولة النسخ واللصق :slight_smile:) - /admin/reports/reactions

4 إعجابات

آه. UNION ALL هي الطريقة الصحيحة لتنفيذ هذا الاستعلام نظرًا لأنك تقوم بعد شيئين مختلفين تمامًا. يحتاج استعلامي إلى outer join لتغطية المشاركات التي ليس لها إدخال في discourse_reactions_reactions. تسبب إضافة ذلك في انتهاء مهلة استعلامي، لذلك لا يمكنني التحقق مما إذا كان هذا يحل المشكلة. Union هو الحل الصحيح هنا على أي حال.

أنا فضولي بعض الشيء لمعرفة ما إذا كان post_actions قد يفرط في عد الإعجابات. هل يأخذ في الاعتبار الأشخاص الذين يعجبون بمنشور ثم يزيلون هذا التفاعل أو يغيرونه؟

كنت بحاجة إلى تغيير ‘heart’ إلى ‘+1’ في الاستعلام لأننا استخدمنا :+1: لإعجاباتنا في College Confidential. إليك نتيجتي من هذا الاستعلام:

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)

هذه نقطة جيدة. دعني أعود وأضيف AND deleted_at IS NULL.

إعجاب واحد (1)