# 创建 X 个解决方案的徽章？

**URL:** <https://meta.discourse.org/t/badges-for-x-number-of-solutions-created/229170>\
**Category:** Data & reporting\
**Tags:** solved, sql-triggered-badge\
**Created:** [2022 年6 月 6 日 15:49 UTC](https://meta.discourse.org/t/badges-for-x-number-of-solutions-created/229170 "2022-06-06T15:49:54Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

作者： ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
发布日期： [2022 年6 月 6 日 15:58 UTC](https://meta.discourse.org/t/badges-for-x-number-of-solutions-created/229170/2 "2022-06-06T15:58:24Z")

</div>

插件自带了两个，你可以在 `/admin/badges` 页面启用它们（HelpDesk 和 TechSupport）。但如果你想修改它们，这里是查询语句：

```plaintext
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)

```

```plaintext

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
)

```

---

_[View the full topic](https://meta.discourse.org/t/badges-for-x-number-of-solutions-created/229170)._
