Veuillez consulter le tableau suivant (appelé réponse). Il montre quelle réponse un répondant a donné à une question et une réponse.Combinez deux petites requêtes (ce groupe de valeurs différentes) en une seule requête
questionid answerid respondentid
1 10 1
1 11 2
1 11 4
1 12 3
1 12 5
2 20 1
2 20 2
2 21 2
2 22 1
2 22 4
2 23 1
2 23 3
2 24 4
3 30 2
3 30 3
3 30 4
3 31 1
Nous pouvons exécuter l'instruction SQL suivante:
select questionid, answerid, count(respondentid) as noOfRespondentsToQuestionAndAnswer
from response
group by questionid, answerid
... qui nous dira combien de personnes interrogées ont répondu chaque combinaison question + réponse.
Nous pouvons également faire:
select questionid, count(distinct respondentid) as noOfRespondentsToQuestion
from response
group by questionid
... qui nous dira combien de répondants distincts ont répondu à chaque question.
Je voudrais combiner les deux sélections à ONE et laisser le nombre de répondants distincts être représenté sur plus d'une ligne pour chaque questionid (ce qui serait nécessaire, car il est seulement basé sur question et non sur réponse).
Alors, je voudrais un résultat comme ce qui suit:
questionid,answerid,noOfRespondentsToQuestionAndAnswer,noOfRespondentsToQuestion
1 10 1 5
1 11 2 5
1 12 2 5
2 20 2 4
2 21 1 4
2 22 2 4
2 23 2 4
2 24 1 4
3 30 3 4
3 31 1 4
Est-il possible de acheive cela avec une seule requête?