Tenho a consulta abaixo, que funciona no explorador de dados, mas recebo o erro Desculpe, ocorreu um erro. ao tentar usar a consulta para atribuir emblemas. Está faltando algo aqui? A consulta deve corresponder se alguém for membro de um grupo chamado “chapter_” ou “meta_chapter_” e atribuído como seu grupo principal.
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 curtida
Para os Gatilhados Personalizados, você precisa adicionar uma linha extra no início e no final. Há um exemplo em uma postagem minha acima, e você pode encontrar mais informações em Creating triggered custom badge queries 
3 curtidas
Obrigado! Acho que preciso dar uma olhada depois de uma boa noite de sono. Faz tempo que não mexo com SQL e acho que preciso verificar mais alguns exemplos e documentação. A coisa abaixo não está funcionando, com certeza
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))
Isso gera este erro, talvez eu esteja passando as informações erradas ou o nome/coluna.
ERROR: column q.user_id does not exist
LINE 11: JOIN users u on u.id = q.user_id
Editar: ah sim, user_id deveria ser usado de algum lugar, não id.
E como resultado final, esses distintivos são atribuídos quando em um grupo que começa com o nome chapter_ ou 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))
E este para se você estiver em um grupo que termina com -team no nome.
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 curtida