Привет! Я составил запрос (внизу), который отображает тему, категорию, количество голосов за тему, её закрытие, дату создания и пользователя, создавшего тему. Если потребуется дополнительная информация, пожалуйста, дайте знать.
У меня есть несколько проблем и вопросов, с которыми я хотел бы получить помощь или рекомендации, так как я новичок в SQL.
При выполнении этого запроса одна и та же тема отображается сотни раз. Как это исправить?
Есть ли способ получить и отобразить, когда тема будет автоматически закрыта?
Я хочу, чтобы отображались только темы за последнюю неделю. Но добавленный мной 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
Мой предположительный ответ на пункт (3) заключается в том, что это проблема часового пояса и/или что результат зависит от секунды запуска скрипта, когда вам нужно получить время ближайшего полуночи (прошлого или следующего). (Сейчас точно не скажу, как исправить ни одну из этих проблем).
Не уверен, поможет ли это, но можно попробовать
Чтобы узнать, когда они закроются, нужно добавить что-то в часть SELECT (что можно вывести из доступных полей) и изменить FROM следующим образом:
FROM topics t, discourse_voting_topic_vote_count dvc, topic_timers tt