과거 할당 사항 검색

안녕하세요.

저희 포럼에는 스레드를 특정 그룹에 할당하는 워크플로우가 있습니다. 해당 그룹이 특정 스레드에 대해 할 수 있는 일을 다 했다고 판단하면, 스스로 할당을 해제합니다. 이렇게 하면 해당 스레드가 여전히 그 그룹의 책임 범위 내에 있는 스레드 목록에서 제외됩니다.

그리고 저희 내부 보고 목적(“어떤 유형의 주제가 일반적으로 ____ 그룹에 할당되는가”)으로, 포럼에서 그룹 할당된 모든 인스턴스를 검색할 수 있으면 좋겠습니다.

제가 모르는 검색 구문이 있는지, 혹은 이러한 보고서를 추출하는 방법에 대한 아이디어가 있을까요? 스레드를 탐색할 때 그룹 할당 정보(과거 및 현재)가 모두 표시되므로, 단순히 제가 어떤 구문을 놓치고 있는 것 같다는 생각이 듭니다.

Data Explorer 플러그인을 사용하여 이 데이터를 추출할 수 있습니다.

아래 쿼리가 도움이 되길 바랍니다.

1. 현재 그룹에 할당된 모든 토픽 나열
SELECT 
    g.name group_name,
    a.topic_id,
    a.assigned_by_user_id,
    a.created_at
FROM assignments a
INNER JOIN groups g ON g.id = a.assigned_to_id
WHERE assigned_to_type = 'Group'
ORDER BY g.name, created_at DESC
2. 토픽을 그룹에 할당한 이력 나열
SELECT 
    pcf.value AS group,
    p.topic_id,
    p.user_id AS "assigned_by_user_id",
    pcf.created_at::date
FROM posts p
INNER JOIN post_custom_fields pcf ON pcf.post_id = p.id
WHERE action_code = 'assigned_group'
    AND pcf.name = 'action_code_who'
ORDER BY pcf.value, pcf.created_at DESC

와 @michebs – 도움 주셔서 감사합니다!

오늘 하루 종일 비슷한 쿼리를 짜고 있었는데(post_custom_fields 테이블을 발견했을 때 정말 놀랐습니다), 결국 yours가 훨씬 깔끔하네요.

토픽이 해제 후 재지정된 것이 아니라 바로 재지정된 경우 일부 항목이 누락되는 것을 발견하여, 이를 반영하기 위해 WHERE 조건을 조금 수정했습니다. 최종적으로 다음과 같이 정했습니다:

SELECT 
    pcf.value AS group,
    p.topic_id,
    p.user_id AS "assigned_by_user_id",
    pcf.created_at::date
FROM posts p
INNER JOIN post_custom_fields pcf ON pcf.post_id = p.id
WHERE (action_code = 'assigned_group' OR action_code = 'reassigned_group') 
    AND pcf.name = 'action_code_who'
ORDER BY pcf.value, pcf.created_at DESC

다시 한번 도움 주셔서 감사합니다. :heart: