SQL查询:学生A1最新考试(考试2)的Tmarks总分及分年度统计
解决方案
1. 分年度统计结果查询
原查询的问题在于未过滤考试编号,导致累加了所有一年级的考试分数。我们需要在聚合逻辑中指定对应考试ID:
iYr取考试2中一年级的总分sYr取考试1中二年级的总分
对应的SQL语句:
SELECT Regno, SUM(CASE WHEN exam_id = 2 AND year1 = 'istYear' THEN tmarks END) AS iYr, SUM(CASE WHEN exam_id = 1 AND year1 = '2ndYear' THEN tmarks END) AS sYr FROM table1 WHERE Regno = 'A1' GROUP BY Regno;
执行后会得到预期结果:
Regno iYr sYr --------------------- A1 | 250 | 200 ----------------------
2. 查询A1在考试"2"中的Tmarks总分
直接筛选学号为A1且考试编号为2的记录,求和即可:
SELECT Regno, SUM(tmarks) AS exam2_total FROM table1 WHERE Regno = 'A1' AND exam_id = 2 GROUP BY Regno;
执行结果为:
Regno exam2_total ------------------- A1 | 250 -------------------
内容的提问来源于stack exchange,提问作者Muhammad Ismail
相关产品推荐
相关产品推荐

