Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Encontre perguntas respondidas corretamente em um teste on-line com perguntas de escolha única e múltipla


ATUALIZAÇÃO:isso não funciona para o design da tabela do OP, onde 2 linhas são criadas para perguntas de 4 respostas

acho que você precisa primeiro verificar cada pergunta se todas as respostas estão corretas e depois contar as perguntas sem respostas incorretas:
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
)