Aiuto con sql - autoclose/ripeti risultati/filtro settimana

Ciao, ho creato una query (in basso) che visualizza l’argomento, la categoria, il conteggio dei voti di un argomento, se è chiuso, quando è stato creato e l’utente che lo ha creato. Se sono necessarie ulteriori informazioni, non esitate a farmelo sapere.

Ho alcuni problemi e domande per i quali vorrei un aiuto o una guida, dato che sono nuovo in SQL.

  1. Eseguendo questa query, lo stesso argomento viene visualizzato centinaia di volte. Come posso risolvere questo problema?

  2. C’è un modo per ottenere e visualizzare quando un argomento verrà chiuso automaticamente?

  3. Voglio che vengano visualizzati solo gli argomenti creati entro una settimana. Ma il date_trunc che ho aggiunto mostra alcuni elementi di poco più di una settimana fa?

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

Prova ad aggiungere questo dopo la riga WHERE.

 AND t.id = dvc.topic_id

Non l’ho testato, ma penso che questo sia il tuo grosso problema (risolve il problema dello "stesso argomento")

1 Mi Piace

Fantastico! Grazie Jay, funziona :smiley:

Sapresti come affrontare gli altri problemi?

La mia ipotesi su (3) è che si tratti di un problema di fuso orario e/o che si basi sul secondo in cui esegui lo script e desideri la mezzanotte precedente o successiva. (Non sono sicuro di come risolvere nessuno dei due problemi al momento).

Non sono sicuro se questo aiuterà, ma puoi provare

Per sapere quando chiuderanno, dovresti aggiungere qualcosa alla parte SELECT (che puoi dedurre dai campi disponibili) e cambiare FROM come

   FROM topics t, discourse_voting_topic_vote_count dvc, topic_timers tt

e aggiungere questo dopo WHERE

    AND tt.topic_id=t.id

(proprio come quello che hai aggiunto prima).

1 Mi Piace

Grazie ancora Jay, mi hai salvato la vita (:

1 Mi Piace

Wow! Ha funzionato? Fantastico. Sono contento che sia stato d’aiuto.

2 Mi Piace

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