# 인기 주제 배지

**URL:** https://meta.discourse.org/t/badge-for-popular-topic/309938
**Category:** Data & reporting
**Tags:** sql-triggered-badge
**Created:** [5월 30, 2024, 7:03오전 UTC](https://meta.discourse.org/t/badge-for-popular-topic/309938 "2024-05-30T07:03:51Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Shauny](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shauny/32/362012_2.png) [@Shauny](https://meta.discourse.org/u/Shauny)
#### Post date: [5월 30, 2024, 7:03오전 UTC](https://meta.discourse.org/t/badge-for-popular-topic/309938/1 "2024-05-30T07:03:51Z")

</div>

많은 답변을 받은 주제를 생성한 사용자에게 배지를 부여하는 방법이 있을까요? 예를 들어, 100개의 답변을 받았을 때처럼요.

이 배지는 “인기 주제”라고 부를 수 있으며, 많은 토론을 이끌어낼 수 있는 새로운 주제 아이디어를 생각해 보도록 장려할 수 있습니다.

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [5월 30, 2024, 8:21오전 UTC](https://meta.discourse.org/t/badge-for-popular-topic/309938/2 "2024-05-30T08:21:41Z")

</div>

단순한 버전은 다음과 같은 형태가 될 수 있습니다:

```sql
SELECT 
    t.user_id,
    CURRENT_TIMESTAMP AS granted_at,
    p.id AS post_id
FROM topics t
  JOIN posts p ON p.topic_id = t.id AND p.post_number = 1
WHERE t.posts_count >= 100
  AND t.archetype = 'regular'
  AND t.deleted_at ISNULL
  AND t.user_id > 0

```

`t.post_counts`를 사용하면 현재 상태에서는 작은 액션 게시물(닫힘, 비공개 등)도 포함되므로, 얼마나 정확하기를 원하는지에 따라 달라집니다.

쿼리 내에서 ‘대상’ 게시물의 수를 세어 더 구체적으로 만들 수도 있습니다. 예를 들어 다음과 같이:

```sql
SELECT 
    t.user_id,
    CURRENT_TIMESTAMP AS granted_at,
    p.id AS post_id
FROM topics t
  JOIN posts p ON p.topic_id = t.id AND p.post_number = 1
WHERE t.id IN ( 
    SELECT 
        p.topic_id
    FROM posts p
      JOIN topics t ON t.id = p.topic_id
    WHERE t.archetype = 'regular'
      AND t.deleted_at IS NULL
      AND p.deleted_at IS NULL
      AND p.post_number <> 1
      AND p.post_type = 1
      AND p.hidden IS FALSE
     GROUP BY 1
     HAVING COUNT(*) >= 100
     )

```

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [5월 31, 2024, 2:42오전 UTC](https://meta.discourse.org/t/badge-for-popular-topic/309938/3 "2024-05-31T02:42:46Z")

</div>

정말 멋진 아이디어네요, Jam!

운영진도 게시글 수를 3단계로 변경할 수 있어요: 브론즈(50), 실버(100), 골드(200).

이용 방법을 알려주셔서 감사합니다. 아이디어를 주신 @Shauny 님께도 감사드립니다.

---

<div class="post-metadata">

### Author: ![Shauny](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shauny/32/362012_2.png) [@Shauny](https://meta.discourse.org/u/Shauny)
#### Post date: [5월 31, 2024, 6:14오전 UTC](https://meta.discourse.org/t/badge-for-popular-topic/309938/4 "2024-05-31T06:14:18Z")

</div>

감사합니다! 한번 시도해 보고 다시 말씀드릴게요!

---

<div class="post-metadata">

### Author: ![Shauny](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shauny/32/362012_2.png) [@Shauny](https://meta.discourse.org/u/Shauny)
#### Post date: [5월 31, 2024, 5:46오후 UTC](https://meta.discourse.org/t/badge-for-popular-topic/309938/5 "2024-05-31T17:46:08Z")

</div>

지금 설정을 마쳤는데, 매일 업데이트되도록 설정해야 할 것 같은데요? 내일 잘 작동하는지 확인해 보겠습니다. ‘대상 게시물’ 항목도 체크해야 하나요?

---

<div class="post-metadata">

### Author: ![Shauny](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shauny/32/362012_2.png) [@Shauny](https://meta.discourse.org/u/Shauny)
#### Post date: [6월 1, 2024, 9:40오전 UTC](https://meta.discourse.org/t/badge-for-popular-topic/309938/6 "2024-06-01T09:40:29Z")

</div>

잘 작동했어요, 감사합니다!!

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [7월 1, 2024, 9:41오전 UTC](https://meta.discourse.org/t/badge-for-popular-topic/309938/7 "2024-07-01T09:41:08Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
