首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL计算的总和结果

问MYSQL计算的总和结果
EN

Stack Overflow用户
提问于 2011-05-18 02:28:00
回答 2查看 10K关注 0票数 6

我正在用MySQL5.0构建一个查询来计算学生的学期成绩。初始表(studentItemGrades)包含作业列表等,这些作业将用于计算期末成绩。每个作业都有PossibleScore、等级和权重。计算应该对所有类似权重的项目进行分组,并根据作业到期的日期范围提供总和(成绩)/SUM(POSSIBLESCORE)。我遇到的问题是所有个人加权分数的最终总和。例如,结果当前生成以下内容:

代码语言:javascript
复制
CourseScheduleID    sDBID   AssignedDate    DueDate     Weight  WeightedGrade
1           519     2010-08-26  2010-08-30  10  0.0783333333333333
1           519     2010-09-01  2010-09-03  20  0.176
1           519     2010-09-01  2010-09-10  70  0.574

从查询中:

代码语言:javascript
复制
SELECT CourseScheduleID, sDBID, AssignedDate, DueDate, Weight, 
((SUM(Grade)/SUM(PossibleScore))*(Weight/100)) AS WeightedGrade 
FROM studentItemGrades 
WHERE DueDate>='2010-08-23' 
AND DueDate<='2010-09-10' 
AND CourseScheduleID=1 
AND sDBID=519 
AND Status>0 
GROUP BY Weight

问题:现在如何在WeighedGrade输出中对这三个结果求和?顺便说一句,这是一个更大的查询的一部分,用于计算特定校园中所有课程的所有分数。

提前感谢您的帮助。

EN

回答 2

Stack Overflow用户

发布于 2011-05-18 02:34:59

您可以使用子查询,如下所示:

代码语言:javascript
复制
SELECT SUM(WeightedGrade) FROM
(
  SELECT CourseScheduleID, sDBID, AssignedDate, DueDate, Weight, 
    ((SUM(Grade)/SUM(PossibleScore))*(Weight/100)) AS WeightedGrade 
  FROM studentItemGrades 
  WHERE DueDate>='2010-08-23' 
  AND DueDate<='2010-09-10' 
  AND CourseScheduleID=1 
  AND sDBID=519 
  AND Status>0 
  GROUP BY Weight
) t1
票数 12
EN

Stack Overflow用户

发布于 2011-05-18 02:40:40

为了对这三个结果求和,您需要使用带有group by的另一个select重新查询此select的结果。这可以通过使用子查询使用单个sql语句来完成。

代码语言:javascript
复制
SELECT sq.CourseScheduleID, sq.sDBID, SUM(sq.WeightedGrade) as FinalGrade
FROM
(
  SELECT CourseScheduleID, sDBID, AssignedDate, DueDate, Weight, 
         ((SUM(Grade)/SUM (PossibleScore))*(Weight/100)) AS WeightedGrade 
    FROM studentItemGrades WHERE DueDate>='2010-08-23' AND DueDate<='2010-09-10' 
         AND CourseScheduleID=1 AND sDBID=519 AND Status>0 GROUP BY Weight
) AS sq
GROUP BY sq.CourseScheduleID, sq.sDBID
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6035420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档