2012-10-01 87 views
0

我有问卷ID和用户提交的值的问卷调查答复表。mysql得到计数和平均值

我想得到答案的数量,也是整个问题ID的平均值,例如对于问题ID 1,选项1的计数为3,选项2的计数为2,但总体平均值将是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 
+3

可以添加ATLEAST样本记录 –

+0

我已经编辑了问题 – Dave

+0

显示您的预期产出的一列表示TOO。否则,它只是一个简单的选择从YourTable的AVG(ResponseValue)... 1记录= 5.333。你如何期待显示5次回答的相关性,并且6次回答一次,否则......你需要一组。 – DRapp

回答

1

您是否在寻找类似... 在具有整体总每个选项,我会预 - 查询每个问题的总和(回答的价值),然后就这个问题进行分组,然后对所有条目进行分组......然后再次查询,但是按每个问题/选项...因此,在这种情况下,您是获得给定响应总数的百分比表示,而不是“平均值”...... T o确保您获得小数精度,我已经添加了* 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 
+0

不完全,因为我需要知道每个选项的计数 – Dave

+0

@Dave,请参阅修订 – DRapp

+0

感谢您的回复,但我似乎没有得到我预期的结果。我编辑了原始问题,给出了一些数据的样本和我需要看到的结果的解释。 – Dave