fix calculate onchanged answers in ques stats

This commit is contained in:
Pavel 2024-04-05 16:22:11 +03:00
parent cb140aafb3
commit 4305a04063

@ -544,22 +544,44 @@ WITH Funnel AS (
HAVING
COUNT(*) >= 1
),
LastContent AS (
SELECT
a.question_id,
a.content AS last_answer_content
FROM
answer a
JOIN (
SELECT
session,
question_id,
MAX(created_at) AS last_created_at
FROM
answer
WHERE
quiz_id = $1
AND created_at >= TO_TIMESTAMP($2)
AND created_at <= TO_TIMESTAMP($3)
GROUP BY
question_id, session
) AS last_created_at_one_session ON a.session = last_created_at_one_session.session AND a.question_id = last_created_at_one_session.question_id AND a.created_at = last_created_at_one_session.last_created_at
),
Questions AS (
SELECT
q.title AS question_title,
a.content AS answer_content,
lc.last_answer_content AS answer_content,
CAST(
COUNT(CASE WHEN a.result = FALSE THEN 1 END) * 100.0 / NULLIF(SUM(COUNT(CASE WHEN a.result = FALSE THEN 1 END)) OVER (PARTITION BY q.id), 0) AS FLOAT8
) AS percentage
FROM
question q
JOIN LastContent lc ON q.id = lc.question_id
JOIN answer a ON q.id = a.question_id
WHERE
a.quiz_id = $1
AND a.created_at >= TO_TIMESTAMP($2)
AND a.created_at <= TO_TIMESTAMP($3)
GROUP BY
q.id, q.title, a.content
q.id, q.title, lc.last_answer_content
HAVING
COUNT(*) >= 1
)