【发布时间】:2015-08-19 21:56:07
【问题描述】:
我正在尝试将 sql 查询写入学生成绩表下方,我们需要从中计算每个学生成绩的总成绩。
以下是获得所需输出的规则/条件:
如果学生成绩为“A”,则不考虑“B”成绩。 并进行聚合。不要在输出表中填充 B 级。
如果给定表中没有“A”级学生,则检查“B”级学生并进行汇总。
我尝试了一些方法,但没有得到想要的输出。但是我仍然对选择正确的方法来获得所需的输出感到困惑。
例如:这是我的表和所需的查询。
select exam,
sum(CASE WHEN students_grade in ("A") THEN marks
ELSE
students_grade in ("B") THEN marks END) aggregate
from input_table
group by exam
输入表:
student_grade Exam Marks
------------------------------------------------------
A test_1 10.00
B test_1 10.00
A test_1 10.00
A test_1 20.00
A test_1 20.00
B test_1 30.50
期望的输出:
student_grade Exam aggregate
---------------------------------------------------------
A test_1 60.00
请更正上述查询以获得所需的输出/应用上述条件,提前致谢
【问题讨论】:
标签: sql sql-server sql-server-2008