# 배지 쿼리가 탐색기에서는 작동하는데 배지 SQL에서는 작동하지 않나요?

**URL:** https://meta.discourse.org/t/badge-query-working-in-explorer-but-not-in-badge-sql/281543
**Category:** Data & reporting
**Tags:** sql-triggered-badge
**Created:** [8월 17, 2022, 6:27오후 UTC](https://meta.discourse.org/t/badge-query-working-in-explorer-but-not-in-badge-sql/281543 "2022-08-17T18:27:19Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![AquaL1te](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/aqual1te/32/201966_2.png) [@AquaL1te](https://meta.discourse.org/u/AquaL1te)
#### Post date: [8월 17, 2022, 6:27오후 UTC](https://meta.discourse.org/t/badge-query-working-in-explorer-but-not-in-badge-sql/281543/1 "2022-08-17T18:27:19Z")

</div>

아래의 쿼리는 데이터 탐색기에서는 정상적으로 작동하지만, 이 쿼리를 사용하여 배지를 부여하려고 하면 `죄송합니다. 오류가 발생했습니다.`라는 오류가 발생합니다. 제가 놓치고 있는 부분이 있을까요? 이 쿼리는 “chapter\_” 또는 "meta\_chapter\_"라는 이름의 그룹의 멤버이면서, 해당 그룹이 기본 그룹으로 지정된 사용자를 일치시켜야 합니다.

```sql
SELECT distinct on (u.id)
u.id
FROM users u
INNER JOIN groups g
ON u.primary_group_id = g.id
WHERE g.name LIKE 'chapter_%'
OR g.name LIKE 'meta_chapter_%'

```

---

<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: [8월 17, 2022, 6:37오후 UTC](https://meta.discourse.org/t/badge-query-working-in-explorer-but-not-in-badge-sql/281543/2 "2022-08-17T18:37:30Z")

</div>

커스텀 트리거된 배지의 경우, 시작과 끝에 한 줄씩 추가해야 합니다. 위쪽 제 게시물에 예시가 있으며, 더 자세한 정보는 [Creating triggered custom badge queries](https://meta.discourse.org/t/triggered-custom-badge-queries/19336) 에서 확인하실 수 있습니다. 👍

---

<div class="post-metadata">

### Author: ![AquaL1te](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/aqual1te/32/201966_2.png) [@AquaL1te](https://meta.discourse.org/u/AquaL1te)
#### Post date: [8월 17, 2022, 8:57오후 UTC](https://meta.discourse.org/t/badge-query-working-in-explorer-but-not-in-badge-sql/281543/3 "2022-08-17T20:57:55Z")

</div>

고마워요! 좋은 잠을 자고 나면 다시 한번 살펴봐야 할 것 같아요. SQL은 좀 오래되어서 더 많은 예제와 문서를 확인해야 할 것 같습니다. 아래 코드는 작동하지 않는 것 같아요.

```sql
SELECT ub.id, ub.granted_at, g.name
from user_badges ub
INNER JOIN groups g
ON ub.id = g.id
WHERE g.name LIKE 'chapter_%'
OR g.name LIKE 'meta_chapter_%'
AND (:backfill OR ub.id IN (:user_ids))

```

이 에러가 발생하는데, 아마도 잘못된 정보나 이름/컬럼을 전달하고 있는 것 같습니다.

```plaintext
ERROR: column q.user_id does not exist
LINE 11: JOIN users u on u.id = q.user_id

```

수정: 아 맞다, `id`가 아니라 어딘가에서 `user_id`를 사용해야 합니다.

* * *

그리고 최종 결과로, 이름이 `chapter_` 또는 `meta_chapter`로 시작하는 그룹에 속해 있을 때 이 배지가 할당됩니다.

```plaintext
SELECT distinct on (gu.user_id)
gu.user_id, gu.updated_at as granted_at
FROM group_users gu
INNER JOIN groups g
ON gu.group_id = g.id
WHERE g.name LIKE 'chapter_%'
OR g.name LIKE 'meta_chapter_%'
AND (:backfill OR gu.id IN (:user_ids))

```

그리고 이름이 `-team`으로 끝나는 그룹에 속해 있을 때를 위한 쿼리는 다음과 같습니다.

```plaintext
SELECT distinct on (gu.user_id)
gu.user_id, gu.updated_at as granted_at
FROM group_users gu
INNER JOIN groups g
ON gu.group_id = g.id
WHERE g.name LIKE '%-team'
AND (:backfill OR gu.id IN (:user_ids))

```
