MySQL Query不能与avg函数一起使用

时间:2017-05-20 15:55:45

标签: php mysql

我在使用SQL查询时遇到了一些问题。我开始做一个复杂的查询,当我发现问题时,我试图通过更简单的查询来解决它。 avg功能不起作用。我想计算一些投票的平均值(评级属性是SET Type,可能的值为:1,2,3,4,5)。但avg函数给我6.2的结果是不可能的。

Table

查询和结果:

Query and result

2 个答案:

答案 0 :(得分:0)

它实际上比你想象的要简单得多。

第一步:

计算从中获取数字的所有行。

$first = SELECT COUNT(*) FROM TABLENAME

第二步:

使用SUM

添加您要查询的所有行

$second = SELECT SUM(rating) FROM TABLENAME

第三步:

迈出第一步的第二步!

$third = $second / $first;

希望得到更高级的Number Format

number_format($third,2)

答案 1 :(得分:0)

根据MySQL documentation的SET Type列:

  

期望数字参数强制转换的函数,例如SUM()或AVG()   必要时,数字的参数。对于SET值,演员表   operation会导致使用数值。

因此,您需要将CAST函数应用于您的查询,如下所示:

SELECT AVG(CAST(rating AS CHAR)) FROM tsn_comments;