以下のクエリを使用していますが、データエクスプローラーでは機能するものの、バッジの割り当てにクエリを使用しようとすると 申し訳ありませんが、エラーが発生しました。 というエラーが表示されます。何か見落としていることはありますか?クエリは、誰かが「chapter_」または「meta_chapter_」という名前のグループのメンバーであり、プライマリグループとして割り当てられている場合に一致するはずです。
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_%'
「いいね!」 1
カスタムトリガーの場合は、最初と最後に余分な行を追加する必要があります。私の投稿に例があり、Creating triggered custom badge queries で詳細を確認できます 
「いいね!」 3
ありがとうございます。よく眠った後に確認する必要があると思います。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))
このエラーが発生します。おそらく、間違った情報や名前/列を渡しているのかもしれません。
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」で始まるグループに属している場合に割り当てられます。
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」で終わるグループに属している場合のためのものです。
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))
「いいね!」 1