J'ai fait une requête dans laquelle il y a des résultats comparés d'une table de réponses prédéfinie aux réponses qu'un utilisateur entre pour plusieurs questions. Le problème est maintenant que je veux obtenir le score total (que je peux calculer en fonction de l'état correct) de chaque utilisateur. La requête suivante me donne toutes les données des utilisateurs avec le statut de la réponse de chaque question pour être correct ou pas.mysql count résultat état correct et grouper par ID utilisateur
SELECT qa.question_id, qa.test_id, uta.user_answer,uta.user_id, qa.type,
qa.answers correct_answer,
CASE WHEN uta.user_answer = qa.answers THEN 'correct' ELSE 'incorrect' END
AS status
FROM questions_answer qa
LEFT JOIN
(
SELECT user_id, type, test_id, question_id,
GROUP_CONCAT(answers ORDER BY answers) AS user_answer,
timestamp from user_test_answers
WHERE test_id = '1'
GROUP BY user_id, question_id
) uta
ON qa.question_id = uta.question_id
where qa.test_id=1
Si j'ajoute GROUP BY user_id
à la fin il regroupe également le résultat de user_id
Mais comment comptez le nombre de statut correct
afin que je puisse obtenir le nombre total de réponses correctes compte.
Envisager de fournir DDLs appropriés (et/ou un sqlfiddle) ENSEMBLE AVEC LE RESULTAT SOUHAITE SET – Strawberry