我正在尝试为给出了> 99个答案的用户显示来自数据库的良好答案的平均(百分数),而在“答案”列中:1 =良好答案和-1 =错误答案...
使用SUM的问题是1 + -1 = 0,因此从技术上讲,如果某人有5个好的答案和5个不好的答案,当我应该得到50%时,以下查询给我0%
SELECT
user_id,
CONCAT(ROUND( (SUM( `answer` ) / COUNT( `answer` ))*100 ,2 ),'%') AS totals
FROM myDB
WHERE answer <>0
GROUP BY user_id
HAVING COUNT( `answer` ) >99
ORDER BY totals DESC
我将如何进行这项工作?
最佳答案
试试这个,我现在无法测试。
SELECT
user_id,
CONCAT(
ROUND(
( SUM(
case when `answer`>0 then 1 else 0 end
) / COUNT( `answer` )
) * 100, 2
),'%'
) AS totals
FROM myDB
WHERE answer <>0
GROUP BY user_id
HAVING COUNT( `answer` ) >99
ORDER BY totals DESC
关于mysql - 从MySQL中的行数获取平均值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25728550/