如果他们低于表格中学生的平均GPA分数,我试图将表格中学生的GPA曲线上调0.3点。我怎么会这样做?例如,将不胜感激。我有一个名为score,列名和gpa的表。我所知道的是我可能不得不使用更新。我是新来的SQL与遗憾的问题类型...根据列平均值更新列值
1
A
回答
1
SELECT S.name, S.gpa, C.avgGPA AS AverageGPA,
CASE S.gpa < C.avgGPA
WHEN true THEN (S.gpa + 0.3)
ELSE S.gpa
END as CurvedGPA
FROM StudentGrades AS S JOIN (
SELECT avg(gpa) AS avgGPA
FROM StudentGrades
) AS C
最里面查询发现桌子上的平均GPA。假设gpa的数据类型为十进制。 第二个最内层查询选择所有数据,以便您可以查看所有比较结果以验证结果并执行逻辑来对其进行曲线化。在mySQL Workbench上进行测试,但语法应该适用于Oracle。上面的例子是安全的,不会修改数据,但你问的更新等等...
的回答你的问题(不是安全的,如果跑了多次):
UPDATE StudentGrades AS S JOIN (
SELECT avg(gpa) AS avgGPA
FROM StudentGrades
) AS C
SET S.gpa = S.gpa + 0.3
WHERE S.gpa < C.avgGPA
它可能会在你的WHERE子句中没有主键而大吼,但忽略它。 祝你好运!这很有趣;)
+0
“缺少Set关键字”发生错误 – user12074577 2013-05-03 19:16:52
+0
这就是所有的错误说?提供的第二条语句有一个SET关键字。 – 2013-05-03 21:18:48
相关问题
- 1. 根据其行的平均值重新排列矩阵
- 2. 多列平均值
- 3. Excel:根据其他列的值计算平均值
- 4. 根据条件计算各列值的平均值
- 5. 如何根据另一列获得列的平均值?
- 6. 熊猫根据平均值赋值
- 7. 如何根据时间序列数据计算年平均值
- 8. 如何根据另一列的值得到一列的平均值?
- 9. 移动平均值2列
- 10. 选择平均列值
- 11. 从计算列平均值
- 12. 平均值和阵列(Codingbat:scoresAverage)
- 13. 阵列中的平均值
- 14. Excel多列平均值
- 15. 数组列表平均值
- 16. 根据复选框的值更新列
- 17. 根据多个值更新MySQL列
- 18. 根据列计算更新的值
- 19. 根据实际值更新varchar列
- 20. 根据当前值更新一列
- 21. 根据列值更新SQL表
- 22. 根据平均值预测数据
- 23. 根据条件查找data.table列的平均值并用该平均值替换其他值
- 24. 数据框列表中列的中值的平均值
- 25. 如何根据另一列的值更新“职级”列的值?
- 26. 根据另一列值更新R中data.table的列值
- 27. SQL根据另一列的值更新列值
- 28. 根据另一列计算两天和五天的平均值
- 29. R:根据四行组创建平均值列
- 30. 根据WPF中的项目列表计算总和平均值
请发布在您的问题的示例数据和基于它的所需输出 – peterm 2013-05-01 20:50:09