Bonjour !
J’aimerais comprendre quel pourcentage de nouveaux sujets dans une catégorie donnée n’a pas reçu de réponse au cours de la première semaine, et quel pourcentage a été résolu durant cette même semaine. Voici ma requête :
-- [params]
-- string :start_date = 2021-10-06
-- string :end_date = 2021-10-12
WITH solved_topics as
(SELECT
t.created_at::DATE,
t.id,
count(distinct case when u.action_type=15 and u.created_at < (t.created_at + INTERVAL '1 week') and u.target_topic_id=t.id then 1 ELSE NULL END) as solves,
count(distinct case when p.created_at < (t.created_at + INTERVAL '1 week') and p.topic_id=t.id and p.post_number>1 then 1 ELSE NULL END) as responses
from topics t
join user_actions as u
on u.target_topic_id = t.id
join posts as p
on p.topic_id = t.id
where t.created_at BETWEEN :start_date AND :end_date
AND t.user_id > 0
AND p.deleted_at is NULL
AND t.category_id is NOT NULL
group by t.created_at::DATE, t.id)
SELECT
st.created_at as date,
count(distinct st.id) as "Number of New Topics",
sum(st.solves)::INT as "# Solved within a week",
round(sum(st.solves)/count(distinct st.id), 2) as "% Solved",
(count(distinct st.id) - sum(st.responses))::INT as "Topics with No Response in First Week",
round((count(distinct st.id) - sum(st.responses))/count(distinct st.id), 2) as "% with No Response in First Week"
from solved_topics as st
group by date
order by date asc
Je suis certain qu’il existe des méthodes plus élégantes pour faire cela, mais j’ai vérifié manuellement plusieurs dates et ces chiffres correspondent bien à ce que je constate en examinant les sujets individuellement.
Je suppose que pour n’importe quel jour au cours de la semaine passée, le rapport accessible via /admin/reports/topics_with_no_response devrait afficher le même nombre de sujets sans réponse. Dans la plupart des cas, c’est le cas ; mais dans d’autres, il affiche plus de sujets sans réponse que ceux que ma requête retourne.
Avez-vous une idée de la raison de cette divergence ? Existe-t-il un moyen de consulter la requête qui alimente le rapport « Sujets sans réponse » afin de pouvoir comparer les deux ?
Merci d’avance !