Ayuda con SQL - autoclose/resultados repetidos/filtro de semana

Hola, he creado una consulta (al final) que muestra el tema, la categoría, el recuento de votos de un tema, si está cerrado, cuándo se creó y el usuario que lo creó. Si necesita más información, no dude en hacérmelo saber.

Tengo algunos problemas y preguntas con los que me gustaría recibir ayuda o orientación, ya que soy nuevo en SQL.

  1. Al ejecutar esta consulta, muestra el mismo tema cientos de veces. ¿Cómo puedo solucionar esto?

  2. ¿Hay alguna forma de obtener y mostrar cuándo se cerrará automáticamente un tema?

  3. Quiero que solo se muestren los temas de la semana. Pero el date_trunc que agregué muestra algunos elementos de hace poco más de una semana.

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

Intenta agregar esto después de la línea WHERE.

 AND t.id = dvc.topic_id

No lo probé, pero creo que ese es tu gran problema (soluciona el problema del “mismo tema”)

1 me gusta

¡Genial! Gracias Jay, funciona :smiley:

¿Sabrías cómo abordar los otros problemas?

Mi suposición sobre (3) es que es un problema de zona horaria y/o que se basa en el segundo en que ejecutas el script y quieres la medianoche anterior o siguiente. (No estoy seguro de cómo solucionar ninguno de esos problemas de inmediato).

No estoy seguro de si esto ayudará, pero puedes intentar

Para saber cuándo van a cerrar, necesitarías agregar algo a la parte SELECT (que puedes inferir de los campos disponibles) y cambiar FROM como

   FROM topics t, discourse_voting_topic_vote_count dvc, topic_timers tt

y agregar esto después de WHERE

    AND tt.topic_id=t.id

(igual que el que agregaste antes).

1 me gusta

Gracias de nuevo Jay, eres un salvavidas (:

1 me gusta

¡Guau! ¿Eso funcionó? Eso es genial. Me alegro de que haya ayudado.

2 Me gusta

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