Ajuda com SQL - autoclose/repeat results/filtro semanal

Olá, então eu criei uma consulta (na parte inferior) que exibe o tópico, a categoria, a contagem de votos de um tópico, se ele está fechado, quando foi criado e o usuário que o criou. Se mais informações forem necessárias, por favor, me avise.

Tenho alguns problemas e perguntas com os quais gostaria de ajuda ou orientação, já que sou novo em SQL.

  1. Ao executar esta consulta, ela exibe o mesmo tópico centenas de vezes. Como posso corrigir isso?

  2. Existe alguma maneira de obter e mostrar quando um tópico será fechado automaticamente?

  3. Eu quero que apenas tópicos dentro de uma semana sejam exibidos. Mas o date_trunc que adicionei mostra alguns itens com um pouco mais de uma semana atrás?

SELECT
    t.id as topic_id,
    t.category_id,
    dvc.votes_count,
    t.closed,
    t.created_at,
    t.user_id
FROM topics t, discourse_voting_topic_vote_count dvc
WHERE t.closed = true
    AND t.category_id = 20
    AND dvc.votes_count >= 1
    AND t.created_at <= date_trunc('week', current_date)::date
    AND t.created_at >= date_trunc('week', current_date)::date - 7

Tente adicionar isto após a linha WHERE.

 AND t.id = dvc.topic_id

Não testei, mas acho que esse é o seu grande problema (corrige o problema do “mesmo tópico”)

1 curtida

Incrível! Obrigado Jay, funcionou :smiley:

Você saberia como lidar com os outros problemas?

Minha suposição sobre (3) é que se trata de um problema de fuso horário e/ou que se baseia no segundo em que você executa o script e deseja a meia-noite anterior ou seguinte. (Não tenho certeza de como corrigir nenhum deles de imediato).

Não sei se isso ajudará, mas você pode tentar

Para saber quando eles vão fechar, você precisaria adicionar algo à parte SELECT (que você pode inferir dos campos disponíveis) e mudar FROM como

   FROM topics t, discourse_voting_topic_vote_count dvc, topic_timers tt

e adicionar isso depois de WHERE

    AND tt.topic_id=t.id

(assim como o que você adicionou antes).

1 curtida

Obrigado novamente Jay, você me salvou (:

1 curtida

Uau! Funcionou? Que ótimo. Fico feliz que tenha ajudado.

2 curtidas

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