我们创建了一个表evalue (eid , uid , aid ,mark)
mark 是分数(0 -10) aid是文章编号 uid是用户编号 记录用户对文章的评分
我们计算出的文章综合评分是按照相同评分的人数作为权重来计算加权的分数。
其算法可以用下面的sql得出。(mybatis 的mapper (xml))
<select id="getArticleMarkByAid" resultType="Float">
select ROUND(sum(a)/sum(b),1) mark
from (SELECT mark ,count(eid) * mark a,count(eid) b
from evalue
where aid = #{aid} and mark is not null
group by mark) as rN
</select>