我有一份问卷回复表,其中包含问题ID和用户提交的值。
我想得到答案的数量,以及整个问题ID的平均值,例如对于问题ID 1,选项1的计数为3,选项2的计数为2,但是OVERALL平均值为7(所有选项的总和)除以5(提交的总数)。
我无法看到如何使用我的小组执行此操作,该小组按问题ID和选项编号分组总计。
任何指针都会感激不尽!
示例数据看起来像
questionID ResponseValue
1 5
1 5
1 6
2 7
2 7
2 7
2 3
我的预期输出是
questionID responseValue countOfResponses questionAverage
1 5 2 5.3333
1 6 1 5.3333
2 3 1 6
2 7 3 6
答案 0 :(得分:1)
你在寻找像...... 在具有总体总数的每个选项上,我会预先查询每个问题总和(响应的值),然后对问题进行分组,以便对所有条目进行分组...然后再次查询,但是在每个问题上/选项...所以,在这种情况下,你得到的是给定响应所代表的总数的百分比,而不是“平均”......为了确保得到小数精度,我增加了* 1.0000,所以它转到了小数强制结果列而不仅仅是整数。
select
YT.QuestionID,
YT.responseValue,
count(*) as TotalOptResponses,
TotalByQ.TotalQAverage
from
YourTable YT
JOIN ( select QuestionID,
avg(ResponseValue * 1.0000 ) as TotalQAverage
from
YourTable
group by
QuestionID ) TotalByQ
ON YT.QuestionID = TotalByQ.QuestionID
group by
YT.QuestionID,
YT.ResponseValue