استخدام التفاعلات لمنح الشارات

لدي واحدة كنت ألعب بها، على الرغم من أنني وضعتها جانبًا للنظر إليها بعيون جديدة ولم أعد إليها بعد، لذلك قد تحتاج إلى بعض العمل. إنها لمنح شارة بناءً على الحصول على 10 مشاركات على الأقل مع رد الفعل :chefs_kiss: الذي قدمه عضو في مجموعة ‘data-team’ للمشاركات في فئة Data & reporting

SELECT p.user_id, MIN(p.created_at) granted_at
FROM badge_posts p
  JOIN topic_tags tt ON tt.topic_id = p.topic_id
WHERE tt.tag_id = 615
  AND EXISTS (
         SELECT 1
            FROM discourse_reactions_reactions dr
             JOIN discourse_reactions_reaction_users dru ON dr.id = dru.reaction_id
             JOIN group_users gu ON gu.user_id = dru.user_id
            WHERE dr.post_id = p.id
              AND dr.reaction_value = 'chefs_kiss'
              AND gu.group_id = 175
       )
 GROUP BY p.user_id
HAVING COUNT(*) >= 10

على الرغم من أنني لم أكن راضيًا عن استخدام MIN لأنها أعطت تاريخ منح خاطئ.

هناك الكثير من المعايير لها، وهي تلقائية، مما أعتقد أنه يدفعها إلى النهاية الأكثر تعقيدًا. أعتقد أن شيئًا أبسط يمكن أن يكون قابلاً للتحقيق أكثر بكثير دون الكثير من الجهد.