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
トピックが直接再割り当てされた場合(解除してから割り当てられたのではなく)に一部のエントリが欠落していることに気づいたので、これを考慮するために 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