sql - 将从一张表计算的平均总分存储到另一张表中
问题描述
很容易,我敢肯定,但我仍然刚刚开始使用 SQL。如何将平均值存储到 tblAccounts?这是我到目前为止所拥有的..
@playerAccountID uniqueidentifier,
UPDATE tblAccounts
SET overallScore = (
SELECT ( SUM(dart1)/COUNT(dart1)
+ SUM(dart2)/COUNT(dart1)
+ SUM(dart3)/COUNT(dart1) ) / 3
FROM tblScores
INNER JOIN tblAccounts.accountID
ON tblScores.accountID
WHERE @playerAccountID = playerAccountID
)
WHERE @playerAccountID = accountID
tblScores 存储每次投掷飞镖的分数。我需要所有 3 次飞镖的平均值,所以如果 dart1 = 40, dart2 = 60, dart3 = 20 那么平均值是 40。但是这个表中会有多行,我需要存储在 tblAccounts 中的是所有平均值的平均值。例如:
30 40 20 = 30
40 40 40 = 40
15 15 15 = 45
我从这个例子中需要的结果是 (30+40+45)/3 因为有 3 行但行数会有所不同。
解决方案
如果我理解正确,您只需要相关子查询中的算术:
UPDATE tblAccounts
SET overallScore = (SELECT (s.dart1 + s.dart2 + s.dart3) / 3
FROM tblScores s
WHERE s.playerAccountID = tblAccounts.playerAccountID
)
WHERE accountID = @playerAccountID;
推荐阅读
- python - 如果python中的任何单元格为空,如何删除行
- keycloak - Keycloak 只导出一个领域(主控)
- linux - 用于恢复显示“数据库磁盘映像格式错误”的损坏的 sqlite 数据库的命令行
- visual-studio-code - Code-Runner 扩展拒绝使用正确的环境
- firebase - 在 Nuxt Vue 中使用 Firebase 9 的 signInWithEmailAndPassword 方法时出现问题
- java - 将旧的 Java 1.8 项目转换为 Maven 项目 -
- sql-server - 使用spring bash更新数据库中的多重记录(800000行)并从csv文件中保存新数据的最佳方法是什么?
- scheme - 如果不评估,程序是否可以包含未绑定的变量?
- writetofile - 在同一个Path下,imageData createFileAtPath failed 但writeToFile成功
- javascript - 有没有办法在每次运行节点脚本时更新 HTML dom