Запрос принятых решений

Здравствуйте! Я использую следующий запрос для проверки принятых решений за текущий месяц. Однако я не вижу данных после марта. Кроме того, эти цифры не совпадают с теми, что отображаются в отчёте «Принятые решения». Не могли бы вы дать мне какие-либо рекомендации по поводу того, что я делаю не так?

SELECT DISTINCT 
YEAR(p.created_at), MONTH(p.created_at), 
count(distinct(p.topic_id))
    FROM posts p
    JOIN posts_custom_fields pcf ON pcf.post_id = p.id
    WHERE (pcf.name = 'is_accepted_answer' AND pcf.value = 'true') AND YEAR(p.created_at) = 2025
    GROUP BY 1,2

Привет, Шрейас,

Проанализировав ваш запрос, могу сказать, что причина отсутствия данных после марта и расхождений цифр с отчётом «Принятые решения» (Accepted Solutions Dashboard Report) заключается в том, что вы используете таблицу базы данных posts_custom_fields. Однако плагин Discourse Solved отслеживает принятые решения в таблице discourse_solved_solved_topics.

С марта 2025 года было внесено изменение, обновившее плагин Discourse Solved: теперь для определения решённых тем на вашем сайте Discourse используется таблица базы данных discourse_solved_solved_topics. Эта таблица теперь является единственным источником истины для всех данных о решениях.

Ниже приведена исправленная версия вашего запроса, которая будет соответствовать отчёту «Принятые решения» и покажет данные за 2025 год.

Принятые решения по месяцам за 2025 год

SELECT 
    EXTRACT(YEAR FROM p.created_at) AS year,
    EXTRACT(MONTH FROM p.created_at) AS month,
    TO_CHAR(p.created_at, 'Month') AS month_name,
    COUNT(DISTINCT dst.topic_id) AS solutions_count
FROM discourse_solved_solved_topics dst
JOIN posts p ON p.id = dst.answer_post_id
WHERE p.created_at >= '2025-01-01' AND p.created_at < '2026-01-01'
GROUP BY 1, 2, 3
ORDER BY year, month

Результаты этого запроса будут включать:

  • Все месяцы 2025 года, в которых были приняты решения (не только март)
  • Цифры, совпадающие с отчётом «Принятые решения», так как используется одна и та же таблица базы данных
  • Форматирование дат с использованием нативных функций PostgreSQL

Надеюсь, это поможет вам найти нужные данные! :slightly_smiling_face:

Спасибо, @SaraDev! Это полезно. Я проверю результат этого запроса, как только смогу получить discourse_solved_solved_topics в Snowflake для выполнения запроса.