user_actions를 기반으로 어떤 사용자가 주제에 참여했는지 파악하기 위해 Data Explorer 쿼리를 사용했습니다:
-- [params]
-- int :topic = 3620561
select user_id,
sum(action_type) actions,
sum(case action_type when 5 then 1 else 0 end) replies
from user_actions ua
join users u on u.id = ua.user_id
where target_topic_id = :topic
and moderator is false
and admin is false
group by ua.user_id
이 쿼리는 답변, 좋아요, 수정, 멘션과 같은 행동을 포함합니다. 또한 투표 응답을 포함하는 쿼리도 하나 더 가지고 있습니다. 이는 리드(잠재 고객) 수집을 위한 것이었지만, 답변 이외의 다른 활동을 한 사용자 중에도 해당 주제에 대해 권리를 주장할 수 있는 사람이 있을 것으로 예상됩니다. "참여"를 정의하는 것은 유용한 작업이 될 수 있습니다.
전체 카테고리로 확장하려면 topics t on target_topic_id = t.id와 조인하고 where 절에 category_id를 추가하면 됩니다. ua.created_at을 기준으로 시간 범위를 정의하는 것도 어렵지 않을 것입니다.
select ua.user_id, u.username, sum(action_type) actions, sum(case action_type when 5 then 1 else 0 end) replies from user_actions ua
join users u on u.id = ua.user_id
join topics t on target_topic_id = t.id
where ua.created_at > 'YYYY-MM-DD'::date and t.category_id = CATEGORY_ID
group by ua.user_id, u.username;
YYY-MM-DD를 원하는 기준 날짜로, CATEGORY_ID를 해당 카테고리 ID로 교체하면 됩니다.
사용자 ID 목록(또는 심지어 사용자 이름 목록)이 있고, 이들을 그룹에 추가해야 합니다.
현재 자동화 기능에서 제 상황에 도움이 될 수 있는 사용 사례를 찾지 못했습니다. 현재 제공되는 기능은 배지나 사용자 정의 필드를 기반으로 그룹에 추가하는 것뿐인데, 이는 추가적인 단계(해당 사용자 모두에게 배지를 추가하거나 사용자 정의 필드를 추가한 후 원하는 특정 사용자에게 값을 입력하는 것)를 의미할 뿐입니다.
bulk_add_user_to_group 함수나, 아니면 루프 안에서 호출할 수 있는 add_user_to_group 함수 같은 것이 없나요?