You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何关联一对多关系表并按技能类型聚合多列计算平均值?

解决按技能类型计算候选人平均评分的问题

嘿,我来帮你搞定这个需求!你已经成功关联了interviews和ratings表,接下来只需要用条件聚合就能实现按技能类型拆分平均分的效果啦。

正确的SQL语句

SELECT 
    i.Candidate,
    AVG(CASE WHEN r.skill_type = 'Required' THEN r.rating END) AS `Required Rating`,
    AVG(CASE WHEN r.skill_type = 'Optional' THEN r.rating END) AS `Optional Rating`
FROM interviews i
INNER JOIN ratings r 
    ON r.interview_id = i.interview_id
GROUP BY i.Candidate;

逻辑解释

  • 用INNER JOIN替代了你之前的隐式连接(逗号写法),这是更规范的SQL写法,可读性更强
  • CASE WHEN语句会针对每条记录判断技能类型:
    • 如果是Required,就返回对应的评分,否则返回NULL
    • 如果是Optional,就返回对应的评分,否则返回NULL
  • AVG()函数会自动忽略NULL值,所以它只会计算对应技能类型下的评分平均值
  • GROUP BY i.Candidate保证我们是按每个候选人维度来聚合计算的

预期输出结果

CandidateRequired RatingOptional Rating
Ram4.03.5
Rahim4.51.5

内容的提问来源于stack exchange,提问作者kishore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 06:32:41