sql怎么计算出加权平均结果?

image.png

FineReport nhb2318 发布于 2022-5-2 23:44
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
全栈数据Lv6初级互助
发布于2022-5-3 09:53

image.png

SQL语句:

/*每个的加权总数除以参与打分角色的权重,即为加权平均分*/

select 姓名,SUM(角色平均分*权重) as 每人加权总数 ,SUM(权重) as 权重数,round(sum(角色平均分*权重)/sum(权重),2) as 加权平均分

from (

/*子查询2:获取没人不同角色打分人的分值平均值和权重*/

select 姓名,打分人角色,round(avg(分数),2) as 角色平均分,round(avg(权重),2) as 权重,count(1) as 角色人数  from (

/*子查询1:根据角色获取到权重*/

select 姓名,分数,打分人角色,

case 打分人角色

when '高层领导' then 5 

when '中层领导' then 3

when '普通人员' then 2

end as 权重

 from 加权打分表) t1

 group by 姓名,打分人角色

 ) t2

 group by 姓名

最佳回答
0
巴拉巴拉1234Lv6初级互助
发布于2022-5-3 09:39

字段和表格式是什么样得?

  • 3关注人数
  • 1654浏览人数
  • 最后回答于:2022-5-3 09:53
    请选择关闭问题的原因
    确定 取消
    返回顶部