Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Finden Sie richtig beantwortete Fragen in einem Online-Test mit Single- und Multi-Choice-Fragen

UPDATE:Dies funktioniert nicht für das Tabellendesign von OP, bei dem 2 Zeilen für Fragen mit 4 Antworten erstellt werden

Ich denke, Sie müssen zuerst jede Frage überprüfen, ob alle Antworten richtig sind, und dann die Fragen ohne falsche Antworten zählen:

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
)