شارات لعدد معين من الحلول؟

مرحباً، كنت أتساءل عما إذا كان هناك أي قالب أو استعلام قياسي لمنح شارات لمقدار معين من الحلول؟ على سبيل المثال، أجيب على حوالي 10 مشاركات/أسئلة ويتم تمييزها جميعًا كحلول. أحصل على شارة لهذا ولكل شارة مقابلة لـ 20 أو 30 أو 40 حلاً مميزًا، وما إلى ذلك.

حاولت البحث عن الاستعلامات القياسية ولكن يبدو أنها غير موجودة. أرى أن هناك بعض الاستعلامات المخصصة المكتوبة هنا.

شكراً،

هناك زوجان يأتيان مع المكون الإضافي والذي يمكنك تمكينهما من صفحة /admin/badges (HelpDesk و TechSupport). ولكن إليك الاستعلامات إذا كنت ترغب في تكييفها:

SELECT p.user_id, p.id post_id, p.updated_at granted_at
FROM badge_posts p
WHERE p.post_number > 1 AND
    p.id IN (
      SELECT post_id FROM (
       SELECT pc.post_id, row_number()
       OVER (PARTITION BY p1.user_id ORDER BY pc.created_at) as rnum
       FROM post_custom_fields pc
       JOIN badge_posts p1 ON p1.id = pc.post_id
       JOIN topics t1 ON p1.topic_id = t1.id
       WHERE name = 'is_accepted_answer' AND
                    p1.user_id <> t1.user_id AND
        (
          :backfill OR
           p1.user_id IN (
                   select user_id from posts where p1.id IN (:post_ids)
           )
       )
) X  WHERE rnum = 1)

SELECT id user_id, current_timestamp granted_at
FROM users
WHERE id  IN (
       SELECT p1.user_id
       FROM post_custom_fields pc
       JOIN badge_posts p1 ON p1.id = pc.post_id
       JOIN topics t1 ON p1.topic_id = t1.id
       WHERE p1.user_id <> t1.user_id AND
                    name = 'is_accepted_answer' AND
            p1.user_id IN (
                   SELECT user_id
                   FROM posts
                   WHERE :backfill OR  p1.id IN (:post_ids)
            )
        GROUP BY p1.user_id
        HAVING COUNT(*) > 9
)
إعجابَين (2)

شكرا @JammyDodger،

قد أحتاج إلى المزيد من المساعدة. هل لديك أي وثائق تحدد بعض المحددات/الحقول للحل؟

Screen Shot 2022-06-06 at 11.05.29 AM

لا تقلق. :slightly_smiling_face: مستكشف البيانات جيد جدًا لتجربة الاستعلامات قبل إضافتها كـ شارات SQL مخصصة (على الرغم من أن استعلامات مستكشف البيانات لا تحتاج إلى جزء backfill).

على الرغم من أنني أعتقد أن الاستعلام الثاني أعلاه يحتوي على كل المعلومات التي تحتاجها. يتم الاحتفاظ بالحلول في جدول post_cutom_field كـ is_accepted_answer في عمود name. وهذا الاستعلام الثاني يمنح شارة TechSupport لـ 10 حلول (HAVING COUNT(*) > 9)، لذلك بالنسبة للحلول التي تريدها من OP، تحتاج فقط إلى نسخ هذا الاستعلام وتغيير الرقم السفلي إلى 19، 29، 39، وما إلى ذلك.

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