如果他們低於表格中學生的平均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