안녕하세요, 이번 달에 승인된 솔루션을 확인하기 위해 아래 쿼리를 사용하고 있습니다. 하지만 3월 이후의 데이터가 보이지 않습니다. 또한, 이 숫자들은 승인된 솔루션 보고서에 표시된 내용과 일치하지 않습니다. 제가 무엇을 잘못하고 있는지 조언을 구할 수 있을까요?
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
공유해 주신 쿼리를 살펴보니, 3월 이후의 데이터가 표시되지 않고 쿼리의 숫자가 수락된 솔루션 대시보드 보고서와 일치하지 않는 이유는 posts_custom_fields 데이터베이스 테이블을 사용하고 있기 때문입니다. 그러나 Discourse Solved 플러그인은 discourse_solved_solved_topics 테이블을 사용하여 수락된 솔루션을 추적합니다.
2025년 3월 기준으로, Discourse Solved 플러그인이 Discourse 사이트에서 해결된 토픽을 결정하기 위해 discourse_solved_solved_topics 데이터베이스 테이블을 사용하도록 업데이트하는 변경 사항이 있었습니다. 이제 이 테이블이 모든 솔루션 데이터의 단일 정보 원본(source of truth)이 되었습니다.
수락된 솔루션 보고서와 일치하고 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