Procurando por atribuições históricas

Olá.\n\nTemos um fluxo de trabalho em nosso fórum onde atribuímos tópicos a um grupo e, uma vez que esse grupo fez o que achou que podia fazer com um determinado tópico, ele se desvincula dele. Isso garante que esses tópicos saiam da lista de tópicos pelos quais ainda são responsáveis.\n\nE, para nossos próprios fins de relatórios (“que tipo de tópicos normalmente são atribuídos ao grupo ____”), gostaríamos de poder pesquisar em nosso fórum por quaisquer instâncias de atribuição de grupo.\n\nExiste alguma sintaxe de pesquisa com a qual eu não esteja familiarizado ou alguma ideia sobre como extrair esses relatórios? Gosto de pensar que estou apenas perdendo alguma sintaxe, já que todas as informações sobre atribuições de grupo (passadas e presentes) estão visíveis ao navegar em um tópico.

1 curtida

Você pode extrair esses dados usando o plugin Data Explorer.

Espero que a consulta abaixo ajude você.

1. Lista todos os tópicos que estão atualmente atribuídos a um grupo
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. Lista o histórico de atribuição de tópicos a grupos
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
4 curtidas

Uau @michebs – obrigado pela sua ajuda!

Começamos a juntar uma consulta semelhante até o final do dia (descobrir a tabela post_custom_fields nos deixou de queixo caído), mas a sua é muito mais limpa no final.

Notamos que faltavam algumas entradas quando os tópicos haviam sido diretamente reatribuídos em vez de desatribuídos e depois atribuídos, então alterei um pouco a condição WHERE para levar isso em consideração. Assim, finalmente chegamos a:

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

Obrigado novamente pela sua ajuda. :heart:

3 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.