SQL Server table:
userId | QuestionId | Question | AnswerId | Answer |
---|---|---|---|---|
32 | 98 | What is the total salary in your family? | 380 | 4000 |
32 | 99 | How many are brothers? | 385 | 5 |
33 | 98 | What is the total salary in your family? | 382 | 3000 |
33 | 99 | How many are brothers? | 385 | 5 |
34 | 98 | What is the total salary in your family? | 382 | 3000 |
34 | 99 | How many are brothers? | 385 | 5 |
35 | 98 | What is the total salary in your family? | 381 | 5000 |
35 | 99 | How many are brothers? | 384 | 4 |
36 | 98 | What is the total salary in your family? | 381 | 5000 |
36 | 99 | How many are brothers? | 383 | 3 |
37 | 98 | What is the total salary in your family? | 381 | 5000 |
37 | 99 | How many are brothers? | 383 | 3 |
38 | 98 | What is the total salary in your family? | 380 | 4000 |
38 | 99 | How many are brothers? | 385 | 5 |
39 | 98 | What is the total salary in your family? | 380 | 4000 |
39 | 99 | How many are brothers? | 385 | 5 |
41 | 98 | What is the total salary in your family? | 381 | 5000 |
41 | 99 | How many are brothers? | 383 | 3 |
I want to find the list of the number of common answers given to the questions
Example:
salary: 5000 brothers: 3 count = 3 user
Question1Id | Question2Id | Answer1 | Answer2 | count |
---|---|---|---|---|
98 | 99 | 3000 | 5 | 2 |
98 | 99 | 4000 | 5 | 3 |
98 | 99 | 5000 | 3 | 3 |
98 | 99 | 5000 | 4 | 1 |
CodePudding user response:
Here you go:
select
a.questionid, b.questionid,
a.answer as answer1, b.answer as answer2, count(*) as count
from mytable a
join mytable b on a.userid = b.userid
where a.questionid = 98
and b.questionid = 99
group by a.questionid, b.questionid, a.answer, b.answer