mysql - 一种对 SQL 语句进行分组、求和和计算的更有效方法
问题描述
是否有更有效的方法(处理器时间)来编写此语句?
SELECT student_year,
student_id,
sum(score_0)/sum(exam),
sum(score_1)/sum(exam),
sum(score_2)/sum(exam),
sum(score_3)/sum(exam)
FROM student_scores
WHERE student_year = 2018 AND exam > 0
group BY student_year, student_id;
ROWS 看起来像这样:
STUD_YEAR STUD_ID SCORE0 SCORE1 SCORE2 SCORE3 EXAM
2018 21354 17 21 19 25 1
2018 21354 22 19 0 23 1
2018 21354 0 0 0 0 0
2018 67864 10 15 10 20 1
所以对于学生 21354,计算将是
(17+22+0)/(1+1+0), (21+19+0)/(1+1+0), (19+0+0)/(1+1+0), (25+23+0)/(1+1+0)
输出将是
19.5, 20, 21.5, 24
将其放在上下文中的旁注。一个学生每年可以参加几门考试,每门考试由 4 个部分组成,分别计分。
解决方案
推荐阅读
- reactjs - React 中的 AWS GraphQL:如何获取嵌套了与另一种类型@model 有连接的项目数组的项目列表?在 AWS 控制台中工作
- stata - 已知自由度数和卡方值时如何计算 p 值?
- c# - 执行包时出现 SSIS 错误,但作为任务执行时工作正常
- mysql - 如何在 ASP.Net 核心代码优先方法中上传图像并使用 post man 发送图像
- wagtail - Wagtail formbuilder提交不发送电子邮件
- c# - 如何正确更改代码以在没有委托的情况下使用
- node.js - webpack.config.js 的“完全指定”错误 - 但不存在配置
- html - ValueError:无法更改照片,因为数据未验证
- javascript - 为什么ajax无法获取结果?
- javascript - 如何让 useEffect 在我的函数内部工作?