mysql获取计数和平均值

mysql获取计数和平均值,mysql,Mysql,我有一个带有问题ID和用户提交的值的问卷回答表 我想得到回答的数量,以及整个问题ID的平均值,因此,例如,对于问题ID 1,选项1的数量为3,选项2的数量为2,但总体平均值为7(所有选项的总和)除以5(提交总数) 我看不出如何使用我的group by来实现这一点,它会根据问题ID和选项编号对所有响应进行分组 任何指点都将受到感激 示例数据如下所示 questionID ResponseValue 1 5 1 5 1 6 2

我有一个带有问题ID和用户提交的值的问卷回答表

我想得到回答的数量,以及整个问题ID的平均值,因此,例如,对于问题ID 1,选项1的数量为3,选项2的数量为2,但总体平均值为7(所有选项的总和)除以5(提交总数)

我看不出如何使用我的group by来实现这一点,它会根据问题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

你在找像。。。 对于每个选项的总体合计,我会预先查询每个问题的总和(回答的值),然后就问题分组,这样所有条目都有这个值。。。然后再次查询,但针对每个问题/选项。。。因此,在本例中,您得到的是给定响应所代表的总百分比,而不是“平均值”。。。为了确保获得十进制精度,我添加了*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

您是否可以添加至少一个示例记录来显示预期输出的列表示形式。否则,它只是从表中简单地选择平均值。。。1条记录=5.333。您希望如何显示5个回答两次,6个回答一次的相关性。。。你需要一个分组。我已经更新了问题,以显示所需的输出不完全,因为我需要知道每个选项的计数。谢谢你的回复,但我似乎没有得到我预期的结果。我已经编辑了原始问题,提供了一些数据样本,并解释了我需要查看的结果。非常感谢您的帮助,现在已成功实施。我想没有subselect是无法做到这一点的,因为它需要根据不同的内容进行分组。