我正在尝试计算所选列的平均值。
如果我运行此代码:
SELECT answer_value
FROM survey$question$answer JOIN answer
ON survey$question$answer.answer_letter = answer.answer_letter
WHERE survey$question$answer.survey_id = 12;
我得到这个(这些值是正确的):
但是,当我运行此命令时:
SELECT AVG(answer_value)
FROM survey$question$answer JOIN answer
ON survey$question$answer.answer_letter = answer.answer_letter
WHERE survey$question$answer.survey_id = 12;
我得到这个:
我得到2的平均值,而5、5和3的正确平均值是4.33
为什么会这样呢?
另一个例子。这段代码在这里:
SELECT answer_value
FROM survey$question$answer JOIN answer
ON survey$question$answer.answer_letter = answer.answer_letter
WHERE survey$question$answer.survey_id = 6;
显示给我:
但是,当我尝试使用此代码计算平均值时:
SELECT AVG(answer_value)
FROM survey$question$answer JOIN answer
ON survey$question$answer.answer_letter = answer.answer_letter
WHERE survey$question$answer.survey_id = 6;
我得到这个:
3、2和1的平均值等于2,而不是9.33
救命?
谢谢!
最佳答案
我认为您错了,您确实在以下其他地方犯了错误,请检查表列的数据类型
select avg( c) from (select 5 as c
union all
select 5
union all
select 3
) a
c
4.3333
online demo
关于mysql - MySQL AVG()函数返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55712877/