sql >> Base de Datos >  >> RDS >> Oracle

Encuentre preguntas respondidas correctamente en una prueba en línea con preguntas de opción única y múltiple

ACTUALIZACIÓN:esto no funciona para el diseño de la tabla de OP donde se crean 2 filas para preguntas de 4 respuestas

Creo que primero debe verificar cada pregunta si tiene todas las respuestas correctas y luego contar las preguntas sin respuestas incorrectas:

select
  count(*) - count(incorrect_answers_per_question) correct
from (
  select
    d.test_id,
    d.question_id,
    sum(case when r.correct_response_flag = 'N' then 1 end) incorrect_answers_per_question
  from test_response d
  join question_response r on d.response_id = r.question_resp_id
  where d.test_id = '10113'
  group by d.test_id, d.question_id
)