SQL求助 - 自动关闭/重复结果/周筛选

嘿,我创建了一个查询(在底部),它显示了主题、类别、主题的投票数、是否已关闭、创建时间和创建它的用户。如果需要更多信息,请随时告诉我。

我有一些问题和疑问,我想寻求一些帮助或指导,因为我对 SQL 还不熟悉。

  1. 运行此查询时,它会显示同一个主题数百次。如何解决这个问题?

  2. 有没有什么办法可以获取并显示主题何时会自动关闭?

  3. 我只想显示一周内的主题。但是,我添加的 date_trunc 显示了一些距离一周多一点的条目?

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

尝试在 WHERE 行之后添加此内容。

 AND t.id = dvc.topic_id

我没有测试过,但我想这就是你的大问题(解决了“相同主题”问题)

1 个赞

太棒了!谢谢 Jay,它奏效了 :smiley:

您知道如何处理其他问题吗?

我猜想(3)是时区问题,或者它是基于你运行脚本的秒数,而你想要的是前一个或下一个午夜。(一时想不出如何解决这两个问题)。

不确定这是否有帮助,但你可以尝试

要获取他们何时关闭,你需要向 SELECT 部分添加一些内容(你可以从可用字段中推断出来),并更改 FROM,如下所示:

   FROM topics t, discourse_voting_topic_vote_count dvc, topic_timers tt

并在 WHERE 之后添加这个:

    AND tt.topic_id=t.id

(就像你之前添加的那样)。

1 个赞

再次感谢你,Jay,你真是救命恩人(:

1 个赞

太棒了!竟然奏效了?太了不起了。很高兴能帮到你。

2 个赞

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