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