diff --git a/dal/db_query/queries.sql b/dal/db_query/queries.sql index 56e8ebd..6d46608 100644 --- a/dal/db_query/queries.sql +++ b/dal/db_query/queries.sql @@ -431,16 +431,24 @@ WITH TimeBucket AS ( SELECT tb.time_interval_start, tb.time_interval_end, - COUNT(*) AS true_result_count + COUNT(DISTINCT session) AS true_result_count FROM - answer - JOIN TimeBucket tb ON date_trunc('hour', answer.created_at) >= tb.time_interval_start - AND date_trunc('hour', answer.created_at) < tb.time_interval_end - WHERE - answer.quiz_id = $3 - AND result = TRUE - AND created_at >= $1::timestamp - AND created_at <= $2::timestamp + ( + SELECT + session, + MIN(created_at) AS first_result_time + FROM + answer + WHERE + answer.quiz_id = $3 + AND result = TRUE + AND created_at >= $1::timestamp + AND created_at <= $2::timestamp + GROUP BY + session + ) AS first_results + JOIN TimeBucket tb ON date_trunc('hour', first_results.first_result_time) >= tb.time_interval_start + AND date_trunc('hour', first_results.first_result_time) < tb.time_interval_end GROUP BY tb.time_interval_start, tb.time_interval_end ),